Биты и байты.

Биты и байты.

среда, 13 ноября 2013 г.

Qlikview основы - Объединение таблиц

Сегодня потребовалось объединить несколько таблиц непосредственно в QlikView, но вот засада есть две команды JOIN и  CONCATENATE
Пора раз и навсегда разобраться что и когда нужно использовать …..
JOIN – позволяет добавить новые столбцы в таблицу
CONCATENATE  - совместить данные из двух таблиц (аналог UNION SQL)
Есть еще интересный оператор KEEP (позволяет выровнять таблицы по количеству записей в зависимости от LEFT RIGHT INNER)


Как работает CONCATENATE 
Если напрямую загрузить две таблицы например сотрудников двух компаний то если открыть модель можно увидеть что они связаны
через вспомогательную таблицу $Syn 1

 

И наша схема выглядит так..
что по мере разрастания количества таблиц  будет напоминать большую кашу, дабы все это привести в человеческий вид воспользуемся CONCATENATE 
1..Неявное связывание (QlikView должен был автоматически сам связать эти таблицы по одинаковым полям, но так как количество полей в таблицах не совпадает связать не получилось )
Как выход добавить еще одно поле Department в таблицу Stamford Employees и таблицы свяжутся сами автоматически
2..Можно отменить неявное связывание если указать ключевое слово перед таблицей NOCONCATENATE 


3.. Явное связывание (определенно лучше чем неявное, есть возможность связать таблицы с разным набором полей)
Указываем секретное слово  CONCATENATE в скобочках пишем таблицу в которую сливаем данные


Как работает JOIN 
Тем кто знаком с любой СУБД и так все понятно, для остальных есть 4 вида объединений: INNER, LEFT, RIGHT, OUTER
Пусть есть 2 таблицы
Синтаксис примерно такой

MyTable:
LOAD
    
Field1,
    
Field2
FROM myqvd1.qvd (qvd);

LEFT JOIN (MyTable)
LOAD
    
Field2,
    
Field3
FROM myqvd2.qvd (qvd);

В итоге получим для

LEFT JOIN
RIGHT JOIN
INNER  JOIN
OUTER  JOIN
ГЛАВНОЕ ЧТОБЫ СТОЛБЦЫ ИМЕЛИ ОДИНАКОВОЕ НАЗВАНИЕ!!
Иначе получите на выходе CROSS JOIN

Как работает KEEP 

На этом кажется все….

Блондинке в автошколе задают вопрос:
- Как работает двигатель?
- Можно своими словами?
- Конечно?
- Вжжжж, ввжжж, вжжж.


About