我想创建一个List框,它接受一个SQL查询作为表达式。在QlikView中可以吗?
例如,如果我想显示向一个经理报告的所有员工的平均(sal)。 因此,基本上,列表框应该具有Managers的名称,并且通过选择管理器,可以查看sal的平均值。请建议。
答案 0 :(得分:2)
每当你在表中有自引用列时,事情就会变得冒险。要在Qlikview中执行此操作,最佳解决方案是在Qlikview脚本中创建管理器表:
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
字段中包含的经理员工编号的不同列表,然后将相应的员工姓名加入到每个记录中。只有作为经理引用的员工才会显示在经理表中。
完成此操作后,您只需创建列表框即可。从您的"选择字段"中抓取manname
字段对话框,然后在“表达式”选项卡中添加min({1}man_empnum)
。正如我之前在旧答案中提到的,您可以使用此过程向任何列表框添加表达式。在这种情况下使用min()
只是为了确保经理的员工编号始终显示在列表框中。您将看到是否只使用man_empnum
作为表达式,列表框将仅显示所选经理的员工编号。重要的一点是可以访问集合选择器{1}
,因此您可以使用您想要的任何聚合函数来代替min
。只要您每个员工只有一个员工编号,这就行了。