抱歉,如果我在尝试学习 Qlik Sense 时遗漏了一些明显的东西。
我有一个大约 1 百万行的表,我想根据以下条件过滤数据:
- 查找连续剧的第一个丢失的费用
- 现在将搜索切换到找到 Lost Charge 的序列号 + 后缀,然后查找 Lost Credits:
- 一个。如果找到丢失的信用 - 忽略数据并继续下一个丢失的费用
- 湾。If Lost Credits not Found - 从 Lost Charges 开始选择该系列的所有数据(整个系列,而不仅仅是找到 Lost Charges 的后缀)(不包括 Lost Charges)
- 对每个系列重复。
示例数据:
Serial Sfx Ser|Sfx Value Charge Date Charge Type
96 1 96|1 3.50 30/09/2002 Rental Charges
96 1 96|1 3.50 31/10/2002 Rental Charges
96 1 96|1 3.50 30/11/2002 Rental Charges
96 1 96|1 3.50 31/12/2002 Rental Charges
96 1 96|1 3.50 31/01/2003 Rental Charges
96 1 96|1 3.50 28/02/2003 Rental Charges
96 1 96|1 3.50 31/03/2003 Rental Charges
96 1 96|1 3.50 30/04/2003 Rental Charges
96 1 96|1 3.50 31/05/2003 Rental Charges
96 1 96|1 3.50 30/06/2003 Rental Charges
96 1 96|1 3.50 31/07/2003 Rental Charges
96 1 96|1 3.50 31/08/2003 Rental Charges
96 1 96|1 112.50 14/10/2003 Lost Charges
96 2 96|2 3.50 30/11/2003 Rental Charges
96 2 96|2 3.50 31/12/2003 Rental Charges
96 2 96|2 3.50 31/01/2004 Rental Charges
96 3 96|3 3.50 31/08/2005 Rental Charges
96 3 96|3 3.50 30/09/2005 Rental Charges
96 3 96|3 3.50 31/10/2005 Rental Charges
96 4 96|4 3.50 31/01/2006 Rental Charges
96 4 96|4 3.50 28/02/2006 Rental Charges
96 4 96|4 112.50 10/05/2006 Lost Charges
96 4 96|4 -112.50 15/05/2006 Lost Credits
结果数据应为:
Serial Sfx Ser|Sfx Value Charge Date Charge Type
96 2 96|2 3.50 30/11/2003 Rental Charges
96 2 96|2 3.50 31/12/2003 Rental Charges
96 2 96|2 3.50 31/01/2004 Rental Charges
96 3 96|3 3.50 31/08/2005 Rental Charges
96 3 96|3 3.50 30/09/2005 Rental Charges
96 3 96|3 3.50 31/10/2005 Rental Charges
96 4 96|4 3.50 31/01/2006 Rental Charges
96 4 96|4 3.50 28/02/2006 Rental Charges
96 4 96|4 112.50 10/05/2006 Lost Charges
96 4 96|4 -112.50 15/05/2006 Lost Credits
我尝试只进行集合分析,但无法获得预期的结果。
我已经加载了数据并创建了第二个表来过滤一些在第一次丢失费用之前的数据,如下所示:
ChargeData:
LOAD
Serial_KEY,
"Serial number true" as SerNo,
"Suffix number" as Sfx,
Value,
"Charge Date",
"Charge Type",
"Additional Text",
Customer,
"Invoice Document",
Currency,
"Charge Type" &'|'& Date([Charge Date]) as Charge_KEY
FROM [Transform.qvd]
(qvd);
LostCylinders:
Load
SerNo,
Concat(IF([Charge Type]='Lost Charges','L',
IF([Charge Type]='Lost Credits','C',Null()))) as LostFlag
Resident ChargeData
Group by SerNo
;
然后在应用程序中计算每个序列的所有丢失费用的总和
sum({$<"Charge Type"={"Lost Charges"}>} Value )
但我不知道如何使它只在第一次丢失费用后求和。