我读过一些有关在 SQL 中组合行的主题,其中大多数涉及使用数据透视表。我不确定数据透视在这里会有帮助,因为我试图将多个列组合成一行,而不是提取同一列的值。
表格如下所示:
OrderID XboxLive iTunes XboxDate iTunesDate SerialNumber
9439 50.00 NULL 9/1/2018 NULL 12345
9439 NULL 82.00 NULL 9/2/2018 12345
9440 70.00 NULL 9/10/2018 NULL 12346
我希望结果如下:
OrderID XboxLive iTunes XboxDate iTunesDate SerialNumber
9439 50.00 82.00 9/1/2018 9/2/2018 12345
9440 70.00 NULL 9/10/2018 NULL 12346
我尝试了下面这段代码的不同变体,但没有成功:
SELECT
ISNULL(Xbox.OrderID, Apple.OrderID) AS OrderID,
Xbox.XboxLive,
Apple.iTunes,
Xbox.XboxDate,
Apple.iTunesDate
ISNULL(Xbox.Serial, Apple.Serial) AS Serial
FROM SampleTable AS Xbox
FULL JOIN SampleTable AS Apple
ON Apple.OrderID = Xbox.OrderID
AND Apple.Serial = Xbox.Serial
WHERE Xbox.XboxLive > 0
OR Apple.iTunes > 0
任何帮助将不胜感激。
最佳答案
尝试以下操作:
SELECT
OrderID,
Max(XboxLive)
Max(iTunes),
Max(XboxDate),
Max(iTunesDate)
Serial
FROM SampleTable
Group by
OrderID,
Serial
关于sql - 在 SQL 中将多行和多列合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51228438/