sql-server-2008 - 使用 Null 进行分组 T-SQL

标签 sql-server-2008 t-sql grouping

我在 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

有没有办法在这种情况下添加 Jack a 的债务 (1400) 并显示非空日期,即 06/06/2012。

一个人最多只能有 2 条记录,并且 1 条记录的日期始终为空,那么有没有办法进行求和并使用不为空的日期?

谢谢

最佳答案

要按客户分组,您必须从 GROUP BY 中删除 iddate:

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

关于sql-server-2008 - 使用 Null 进行分组 T-SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11527398/

相关文章:

sql - SQL Server SQL 语句可以有多少个字符?

sql-server - 使用 SET ROWCOUNT 安全吗?

sql - 如何过滤 where 子句中的复合键?

c# - 使用 linq 获取分组的逗号分隔值

javascript - 布料js : objects grouping is not working correctly

sql - 如何删除所有表中的所有外键约束?

SQL累积计数

sql-server - 如何将值合并到日期时间中

sql - SQL Server 命名尾随空格是否不敏感?

mysql - 用于获取 ID 计数值的 SQL 查询,其中 ID 计数 > 1 的最后 14 个跟踪月份按每月分组