比较来自 Qliksense 中两个集合表达式的数据集

问题描述 投票:0回答:1

我的列中有一个数据集如下:

报告月份 对象ID 旗帜

Flag
列的值可以为
1
0
Reporting Month
列有五月和六月的数据。

我想要所有

Object ID
的列表,其中
Flag
1
中的
June
,并且是1中的
不是
May

我想在Qlik的前端通过表达式来实现这一点。

我尝试使用设置表达式,但无法完成最终输出。

我创建了两个变量:

  • Concat({<[Flag]={'1'}>} Distinct [ObjectID],', ')

  • Concat({<[Flag]={'1'},[Reporting Month]={"$(vPreviousMonth)"}>} Distinct [ObjectID],', ')

有没有办法在 qliksense 中比较两个数据集(数组)/字符串?

qlikview qliksense qlik-expression
1个回答
0
投票

如果我正确地回答了你的问题,那么你的数据看起来有点像这样:

Data:
Load [Object ID], Flag, Date#([Month], 'MM-YYYY') as [Reporting Month]
Inline [
Object ID,  Flag, Month
72, 0, 05-2023 
83, 1, 05-2023
99, 0, 05-2023
12, 1, 05-2023
43, 0, 05-2023
23, 0, 05-2023
72, 1, 06-2023
83, 0, 06-2023
99, 1, 06-2023
12, 0, 06-2023
43, 0, 06-2023
];

您正在寻找

Object ID
的串联,例如:

Concat({$<[Flag]={'1'}>*<[Object ID] = E({<[Reporting Month] = {'05-2023'}, [Flag]={'1'}>})>} Distinct [Object ID],', ')

这导致 enter image description here

因为

Object ID
99 和 72 是我的虚拟数据中唯一的 6 月有
Flag = 1
但 5 月有
Flag = 0

集合表达式基本上创建了所有

Object Id
Flag = 1
以及 5 月没有
Object ID
Flag = 1
的交集。 E 代表“排除”。

© www.soinside.com 2019 - 2024. All rights reserved.