我的SQL Server中有行要根据重复的StartDate
列进行合并。通过合并,我也想
ID CustomerID Amount PurchaseDate TimeStamp
1 113 20 2015-10-01 0x0000000000029817
2 113 30 2015-10-01 0x0000000000029818
根据上面的示例,我希望有一个列,其中Amount
列的值总结。
ID CustomerID Amount PurchaseDate TimeStamp
2 113 50 2015-10-01 0x0000000000029818
我不确定应该如何处理这个问题:
Amount
添加到该行但首先我想知道如何获取包含重复StartDate
列值的行
更新:我这里有旧值的删除脚本
DELETE FROM Table WHERE ID NOT IN (SELECT MAX(ID) FROM Table GROUP BY CustomerID, PurchaseDate)
答案 0 :(得分:1)
我建议更新最后插入的内容;
UPDATE T
SET Amount = X.Amount
FROM Table T INNER JOIN (
SELECT MAX(ID), SUM(Amount)
FROM Table
GROUP BY CustomerID, PurchaseDate) X ON T.ID = X.ID)
在这种情况下,我建议删除旧值