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 が表示されないようにすることでした。しかし、データベースを変更せずにこれを実行できるようにしたいと考えています。

これについて最善の方法は何ですか?

ありがとう

4

1 に答える 1

3

名前または 'a' (名前が null の場合) で条件付きでグループ化し、そこから時間の合計を取得します。

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 に答える