我的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”列中。所以它看起来像:
日期时间名称
11-01 9 a
11-01 4 b
12-01 3 a
12-01 3 c
我能够让它工作的唯一方法是在select之前修改表以防止null出现。但我希望能够在不修改数据库的情况下做到这一点。
最好的方法是什么?
由于
答案 0 :(得分: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)