2
我有一个表称为“支付”的方法如下:需要“组”的记录,但我没有聚合函数
+----+--------+
| ID | Amount |
+----+--------+
| 1 | 1.00 |
| 2 | 3.00 |
| 3 | -15.00 |
| 3 | 20.00 |
+----+--------+
“金额”代表的是现金易手 - 以积极的创纪录金额表示取现金,而记录金额为负则表示现金作为变更返还。
下面的查询:
SELECT ID
, CASE WHEN Amount >= 0 THEN Amount END AS CashTaken
, CASE WHEN Amount < 0 THEN Amount END AS CashBack
FROM Payments
WHERE TicketID IN ('1', '2', '3')
......给了我这样的结果集:
+----+-----------+----------+
| ID | CashTaken | CashBack |
+----+-----------+----------+
| 1 | 1.00 | NULL |
| 2 | 3.00 | NULL |
| 3 | NULL | -15.00 |
| 3 | 20.00 | NULL |
+----+-----------+----------+
我怎么能集团这些记录的ID,这样我可以得到以下?
+----+-----------+----------+
| ID | CashTaken | CashBack |
+----+-----------+----------+
| 1 | 1.00 | NULL |
| 2 | 3.00 | NULL |
| 3 | 20.00 | -15.00 |
+----+-----------+----------+
我有点尴尬,因为我觉得这是一件很简单的,是适合在我的面前。
我知道,这是简单的东西,我是远眺。我最终将这个查询加入到我的外部查询中。我忘了你可以在一个查询中有多个聚合函数。我的Payments表还有一个“RecordCreationDate”字段 - 我需要通过ID获得MAX(日期),并且我可以将其转换为相同的查询。谢谢! – Jake