QlikView:可以在列表框的表达式中使用 SQL 查询吗?
QlikView: Can a SQL query be used in Expression of a List Box?
我想创建一个接受 SQL 查询作为表达式的列表框。在 QlikView 中可以吗?
例如,如果我想显示向一位经理报告的所有员工的 Avg(sal)。
所以,基本上,列表框应该有经理的名字,通过选择经理,可以查看 sal 的平均值。请提出建议。
只要您在 table 中有一个自引用列,事情就会变得很危险。要在 Qlikview 中执行此操作,最好的解决方案是在 Qlikview 脚本中创建一个管理器 table:
employees:
LOAD * INLINE [
empnum, empname, man_empnum, salary
1, Bill, 2, 50000
2, John, 3, 75000
3, Mary, , 115000
4, Mike, 2, 45000
5, Amy, 2, 58000
];
managers:
load distinct(man_empnum)
resident employees;
inner join(managers)
load empnum as man_empnum,
empname as manname
resident employees;
这会获取 man_empnum
字段中包含的仅包含经理员工编号的不同列表,然后将适当的员工姓名加入到每条记录中。只有被称为经理的员工才会出现在经理中 table。
完成后,您只需创建列表框即可。从 "Select Fields" 对话框中获取 manname
字段,然后在“表达式”选项卡中添加 min({1}man_empnum)
。正如我之前在旧答案中提到的,您可以使用此过程将表达式添加到任何列表框。在本例中使用min()
只是为了确保经理的员工编号始终显示在列表框中。你会看到如果你只是简单地使用man_empnum
作为表达式,列表框将只显示所选经理的员工编号。重要的部分是获得对集合选择器 {1}
的访问权限,因此您可以使用任何您喜欢的聚合函数来代替 min
。只要每个员工只有一个员工编号,这就可以了。
我想创建一个接受 SQL 查询作为表达式的列表框。在 QlikView 中可以吗?
例如,如果我想显示向一位经理报告的所有员工的 Avg(sal)。 所以,基本上,列表框应该有经理的名字,通过选择经理,可以查看 sal 的平均值。请提出建议。
只要您在 table 中有一个自引用列,事情就会变得很危险。要在 Qlikview 中执行此操作,最好的解决方案是在 Qlikview 脚本中创建一个管理器 table:
employees:
LOAD * INLINE [
empnum, empname, man_empnum, salary
1, Bill, 2, 50000
2, John, 3, 75000
3, Mary, , 115000
4, Mike, 2, 45000
5, Amy, 2, 58000
];
managers:
load distinct(man_empnum)
resident employees;
inner join(managers)
load empnum as man_empnum,
empname as manname
resident employees;
这会获取 man_empnum
字段中包含的仅包含经理员工编号的不同列表,然后将适当的员工姓名加入到每条记录中。只有被称为经理的员工才会出现在经理中 table。
完成后,您只需创建列表框即可。从 "Select Fields" 对话框中获取 manname
字段,然后在“表达式”选项卡中添加 min({1}man_empnum)
。正如我之前在旧答案中提到的,您可以使用此过程将表达式添加到任何列表框。在本例中使用min()
只是为了确保经理的员工编号始终显示在列表框中。你会看到如果你只是简单地使用man_empnum
作为表达式,列表框将只显示所选经理的员工编号。重要的部分是获得对集合选择器 {1}
的访问权限,因此您可以使用任何您喜欢的聚合函数来代替 min
。只要每个员工只有一个员工编号,这就可以了。