我有一张如下表格。
SuppID AreaID SuppNo SupName SupPrice
------------------------------------------------
1 3 526 ANC 100
1 3 985 JTT 200
3 4 100 HIK 300
在上表中。对于相同的SuppID(1)和相同的AreaID(3),存在不同的SuppNo(526& 985)。
当这种情况发生时,我想将前两行放入一行,SuppNo字段为空白。
此外,我的输出结果应显示所有列。
任何帮助?
答案 0 :(得分:2)
它确实是一个简单的聚合,使用COUNT来确定如何处理SuppNo
SELECT
SuppID, AreaID,
COUNT(*) AS DupeCount, --added after comment
CASE WHEN COUNT(*) > 1 THEN NULL ELSE MAX(SuppNo) END
FROM
(
VALUES (1, 3, 526), (1, 3, 985), (3, 4, 100)
) AS MyTable (SuppID, AreaID, SuppNo)
GROUP BY
SuppID, AreaID;