我在SQL查询(SQL Server 2008)
中遇到此问题SELECT id, client, SUM(debt), date
FROM Table GROUP BY id, client, date
从查询中返回
id client debt date
1 jim x 500 05/05/2012
2 jack a 900 06/06/2012
2 jack a 500 null
有没有办法在这个场景中添加杰克的债务(1400)并显示非空日期,即06/06/2012。
一个人最多只能有2条记录,而且1条记录的日期始终为空,那么有没有办法进行求和并使用非空的日期?
由于
答案 0 :(得分:4)
要按客户分组,您必须从GROUP BY中移除id
和date
:
SELECT
MAX(id) AS newest_id, -- or MIN(id) if you prefer
client,
SUM(debt) AS total_debt,
MAX(date) AS most_recent -- or MIN(date) if you prefer
FROM YourTable
GROUP BY client