1

我是 Qlikview 的新手,正在寻找有关脚本的一些答案。如何创建仅加入特定列(而不是所有具有匹配名称的列)的 Qlikview 连接?假设我有以下表格:

员工

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

4 回答 4

5

卡尔

首先,使用 QlikCommunity 解决这些问题确实会更好,QlikView 用户社区非常支持该论坛,并且您会更快地获得答案,我发现这个问题的唯一原因是我在 QlikView 上有一个谷歌警报。

对于你的问题:

QlikView 将自动在所有匹配字段上创建连接,并且无法阻止它这样做,也无法使用不同名称的字段使其连接。因此,答案是在 SQL Select 语句或 LOAD 语句中重命名字段,例如:

Employee:LOAD ID AS EmpID、Person、DepID、Flags AS Emp_Flags;SQL SELECT ID, Person, DepartmentID as DepID, Flags FROM .........;

部门:LOAD ID AS DepID,Name AS DepartmentName,Flags AS Dep_Flags;SQL SELECT ID、名称、标志 FROM ....;

这应该为您解决问题。

还有一条建议,虽然 QlikView 将连接多个字段,但最好避免这种情况,因此如果您确实有一个需要多个字段的连接,那么您应该通过将两个表中的字段一起添加到创建单个字段。

正如我上面所说,加入 QlikCommunity (www.qlikcommunity.com),您会找到更好的服务来解决您的问题。

于 2010-03-18T13:11:30.053 回答
1

有一种方法可以防止 QlikView 自动加入具有相似名称的字段。

比如说,如果您的两个表 Tab1 和 Tab 2 具有相似的字段名称,但在它们自己的上下文中不同,您可以使用“noconcatenate”关键字来防止 QlikView 自动建立关联。

于 2012-10-19T11:38:59.210 回答
0

您可以在 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

(没试过,但你应该明白)

于 2013-02-01T13:30:40.627 回答
0

这应该工作

    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;

结果应如下所示: 结果

亲切的问候丹尼尔

于 2017-06-15T06:18:05.687 回答