我确信这对于SQL / DB2专家来说是一个简单的问题,但我仍然是一个新手,我无法通过这个思考。
我有一个包含四列的表:Amount,ID1,ID2和Date。以下是数据样本:
Amount ID1 ID2 Date 3,220 127 149 Dec 1 3,220 127 424 Dec 1 637 130 149 Dec 1 637 130 424 Dec 1 2232 161 149 Dec 1 2232 161 424 Dec 1 1221 372 149 Dec 1 1221 372 424 Dec 1 1221 372 149 Jun 1 1221 372 424 Jun 1 554 54 149 Dec 1 554 54 424 Dec 1 554 54 149 Jun 1 554 54 424 Jun 1
所以,我要做的是为每个ID1获取Amounts的SUM(),忽略ID2,并且仅针对当前最近的Date。这是导致我麻烦的日期。我能得到的最接近的是:
Sum Amounts 6440 1274 4464 4884 1108
当我想要的是这个:
Sum Amounts 6440 1274 4464 2442 2216
我真正想要的是最后两个数字只是SUM()6月1日的金额,而忽略12月1日。基本上采用当前最晚的日期。
答案 0 :(得分:2)
这应该适合你:
SELECT id1, SUM(amount)
FROM table1 a
WHERE date = (SELECT MAX(date)
FROM table1 b
WHERE a.id1 = b.id1
AND a.id2 = b.id2)
GROUP BY id1