QlikView:可以在列表框的表达式中使用SQL查询吗?

时间:2015-01-12 10:22:54

标签: qlikview

我想创建一个List框,它接受一个SQL查询作为表达式。在QlikView中可以吗?

例如,如果我想显示向一个经理报告的所有员工的平均(sal)。 因此,基本上,列表框应该具有Managers的名称,并且通过选择管理器,可以查看sal的平均值。请建议。

1 个答案:

答案 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。只要您每个员工只有一个员工编号,这就行了。