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

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”列中。因此它会变成:
日期  小时  名称
11-01    9      a
11-01    4      b
12-01    3      a
12-01    3      c
我唯一能使其工作的方法是在选择之前修改表以防止null出现。但我希望能够在不修改数据库的情况下完成此操作。
最好的方法是什么?
谢谢

+1 鼓励提出清晰简洁的问题。许多新用户会写冗长的段落,包含无关信息。继续保持 :) - Jono
请澄清:您期望的结果显示'a'为9,但根据您似乎要求的逻辑,它应该产生10。这是一个计算错误,还是我误解了您的要求? - Steven Moseley
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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接