将具有空字段的行添加到另一行

时间:2012-12-07 00:23:51

标签: sql sql-server-2008

我的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出现。但我希望能够在不修改数据库的情况下做到这一点。

最好的方法是什么?

由于

1 个答案:

答案 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)