5

我的 SQL Server 数据库中有一个表,如下所示:

日期 小时 名称
11-01 3 a
11-01 4 b
11-01 6 null
12-01 2 a
12-01 3 c
12-01 1 null

我想将每个月的“null”列中的小时数添加到“a”列中。所以它看起来像: Date Hours Name
11-01 9 a
11-01 4 b
12-01 3 a
12-01 3 c

我能够让它工作的唯一方法是在选择之前修改表以防止出现空值。但我希望能够在不修改数据库的情况下做到这一点。

解决此问题的最佳方法是什么?

谢谢

4

1 回答 1

3

这将为您完成 - 有条件地按名称或“a”(当名称为空时)分组,并从那里获取小时总和。

SELECT Date, SUM(Hours) AS Hours, MAX(Name) AS Name
FROM TableName
GROUP BY (CASE WHEN Name IS NULL THEN 'a' ELSE Name END)
于 2012-12-07T00:25:47.183 回答