我有一个表,我正在try 按Stage中的列值排序.
它看起来像这样:
CaseID | Stage | EventDate |
---|---|---|
1 | A | 01/01/10 |
1 | B | 01/03/10 |
1 | B | 01/04/10 |
1 | C | 01/05/10 |
2 | A | 02/01/10 |
2 | B | 02/02/10 |
2 | C | 02/03/10 |
2 | C | 02/05/10 |
我试着按阶段组织数据,以便只显示最新的EventDate
个——类似于这样:
CaseID | A | B | C |
---|---|---|---|
1 | 01/01/10 | 01/04/10 | 01/05/10 |
2 | 02/01/10 | 02/02/10 | 02/05/10 |
我做了一份group by
美元的声明
SELECT
CaseID,
CASE WHEN Stage = 'A' THEN MAX(EventDate) END AS A,
CASE WHEN Stage = 'B' THEN MAX(EventDate) END AS B,
CASE WHEN Stage = 'C' THEN MAX(EventDate) END AS C
FROM
StageTable
GROUP BY
CaseID, Stage
但这返回了太多的行,其中包含NULL占位符:
CaseID | A | B | C |
---|---|---|---|
1 | 01/01/10 | NULL | NULL |
1 | NULL | 01/04/10 | NULL |
1 | NULL | NULL | 01/05/10 |
2 | 02/01/10 | NULL | NULL |
2 | NULL | 02/02/10 | NULL |
2 | NULL | NULL | 02/05/10 |
我想把每一行都压缩一下,但我不知道我哪里做错了.我见过其他类似问题的问题,但它们似乎都存在联合表显示重复结果的问题.
任何建议都是有用的