Объединения Qlikview, которые не объединяются со всеми соответствующими именами столбцов - PullRequest
1 голос
/ 18 марта 2010

Я новичок в Qlikview и ищу ответы на некоторые вопросы, касающиеся сценариев. Как я могу создать объединения Qlikview, которые просто объединяются в определенном столбце (а не во всех, имеющих совпадающее имя)? Допустим, у меня есть следующие таблицы:

Employee

Id     |    Person   |    DepartmentID   |    Flags
1000   ,    Bob      ,      2001         ,        1000000
1001   ,    Sue      ,      2002         ,        1100000

Отдел

Id    |    Name    |    Flags
2001  ,    HR      ,    01101111
2001  ,    R&D      ,    1100000

Как лучше всего объединить эти таблицы в поле идентификатора DepartmentID <-> ID? Данные предоставляются SQL выбирает. Я думаю, что написание представлений SQL с использованием уникальных имен было бы одной идеей, но должен быть более простой способ. Пожалуйста, сообщите.

Ответы [ 4 ]

5 голосов
/ 18 марта 2010

Karl

Во-первых, вам действительно будет лучше использовать QlikCommunity для этих вопросов, форум очень хорошо поддерживается сообществом пользователей QlikView, и вы получите ответы быстрее, единственная причина, по которой я нашел это, это то, что у меня есть оповещение Google в QlikView.

На ваш вопрос:

QlikView автоматически создаст объединение для всех совпадающих полей, и нет способа остановить это, это также невозможно сделать объединением, используя поля с разными именами. Поэтому ответ состоит в том, чтобы переименовать ваши поля либо в операторе SQL Select, либо в операторе LOAD, например:

Сотрудник: Идентификатор НАГРУЗКИ AS EmpID, Person, DepID, Flags AS Emp_Flags; SQL SELECT ID, Person, DepartmentID как DepID, флаги ОТ .........;

Департамент: Идентификатор загрузки AS DepID, Имя AS DepartmentName, Флаги AS Dep_Flags; SQL SELECT ID, имя, флаги ОТ .........;

Это должно помочь вам.

Еще один совет, хотя QlikView будет объединять несколько полей, лучше этого избегать, поэтому если у вас есть объединение, требующее нескольких полей, вам следует создать ключ специально для таблицы QlikView, добавив поля вместе в обе таблицы для создания одного поля.

Как я уже говорил выше, присоединяйтесь к QlikCommunity (www.qlikcommunity.com), и вы найдете гораздо лучший сервис для ваших вопросов.

1 голос
/ 19 октября 2012

Существует способ предотвратить автоматическое объединение QlikView в поля с похожими именами.

Скажем, если вы используете две таблицы Tab1 и Tab 2 с одинаковыми именами полей, хотя и разные в своем контексте, вы можете использовать ключевое слово "noconcatenate", чтобы запретить QlikView автоматически создавать ассоциации.

0 голосов
/ 15 июня 2017

Это должно работать

    employee:
LOAD * INLINE [
    ID, Person, DepartmentID, Flags
    1000, Bob, 2001, 1000000
    1001, Sue, 2002, 1100000
];

department:
LOAD * INLINE [
    ID, Name, Flags
    2001, HR, 01101111
    2002, R&D, 1100000
];

left join (employee)
LOAD ID AS DepartmentID,
     Name,
     Flags AS Department_Flags
Resident department
;

DROP Table department;

Результат должен выглядеть так: result

С уважением Daniel

0 голосов
/ 01 февраля 2013

Вы можете редактировать скрипт загрузки в QlikView (CTRL + E) и использовать что-то вроде этого:

Work:
LOAD
   EmployeeId,
   EmployeePerson,
   DepatmentId,
   EmployeeFlags,
   DepartmentName,
   DepartmentFlags

SELECT Employee.Id as EmployeeId, Employee.Person as EmployeePerson, Employee.DepartmentID as DepatmentId, Employee.Flags as EmployeeFlags, Department.Name as DepartmentName, Department.Flags as DepartmentFlags
FROM Employee, Department
WHERE Employee.DepartmentID = Department.Id

(не пробовал, но вы должны понять)

...