对于我要寻找的结果,以下case语句似乎不是最佳或最有效的方法。
结果必须在1字段中的1行上,如下所示。如果有1个PO和1个IREQ,则结果应在LINE_COMMENT字段的行上显示“ 1 PO,1 IREQ”。如果只有2个PR,则结果应在LINE_COMMENT字段的行上显示“ 2 PR”。此过程将重复大约65K次,结果会有所不同。
今天一行可能会在明天根据数据更改重新查询时更改(例如,今天的结果可能是“ 1 PO,2 PR”,明天的行结果可能是“ 2 PO”。
此外,PO计数来自其自己的表,而PR和IREQ来自另一个表,两个表都通过2个唯一键联接到另一个表。
作为一名较新的自学型分析师,我只尝试过Case陈述。请告知是否有一种更有效的方式来处理此问题,尤其是因为完整查询将处理约30种不同的组合。
下面是根据特定条件查找数据所需的较大语句的示例。
CASE
WHEN COUNT PO >= 1 THEN
CASE
WHEN COUNT PR >= 1 THEN
CASE
WHEN COUNT IREQ >= 1 THEN
PO,PR,IREQ
ELSE
PO,PR
END
WHEN COUNT IREQ >= 1 THEN
PO,IREQ
ELSE
PO
END
WHEN COUNT PR >= 1 THEN
CASE
WHEN COUNT IREQ >= 1 THEN
PR,IREQ
ELSE
PR
END
WHEN COUNT IREQ >= 1 THEN
IREQ
END LINE_COMMENT
PO PR IREQ RESULT for LINE_COMMENT
1 3 1 1 PO,3 PR,1 IREQ
2 1 0 2 PO,1 PR
1 0 1 1 PO,1IREQ
1 0 0 1 PO
0 2 1 2 PR,1 IREQ
0 1 0 1 PR
0 0 2 2 IREQ
0 0 0 NO RESULTS