我正在尝试标记列[Customer]
确定的列[Division]
中数据项的出现次数,并在列[flag]
中为其设置三个值。
如果数据项[Customer]
在单独的行中同时包含列[Division]
的“Q”和“Z”数据项值我希望每次重复出现的数据项时数据项[flag]
的值都设置为2 [Customer]
其中客户是“Q”和“Z”分部的成员。
如果存在此条件,我希望[flag]
列的值等于2的所有行{ {1}}列值出现。
如果[Customer]
的数据项值[Division]
仅为“Q”,则将[Customer]
设置为1,如果数据项值为{{1} } [flag]
只有'Z',然后将[Division]
设置为0.
[Customer]
列数据项有数千个可能的值,多行可以包含所需的{ {1}}组合。
如何在下面的示例中创建列[flag]
?
我希望客户用唯一值分隔。
注意客户X重复3次,客户A重复两次,每个[Customer]
列中的值为2 - [customer] / [flag]
值客户重复连续是2.
期望的结果:
[flag]
答案 0 :(得分:0)
根据您的扩展说明尝试此操作:
CASE count(distinct [division] for [Customer])
WHEN 2 THEN 2
WHEN 1 AND [division] = 'Q' THEN 1
WHEN 1 AND [division] = 'Z' THEN 0
END
我们为“客户”的每个值计算“除法”的不同值。如果计数为2,我们知道'Q'和'Z'都被表示,我们输出整数2.如果计数为1并且'division'的值为'Q',那么我们输出1.最后,如果count为1,'division'为'Z',然后输出0。
假设'Q'和'Z'是'division'唯一可能的值,您可以安全地将最后一个测试更改为:ELSE 0以简化。为了清晰起见,我提供了完整的逻辑。