次のようなデータを持つ tblTemp というテーブル名があるとします。
| ID | AMOUNT |
----------------
| 1 | 10 |
| 1-1 | 20 |
| 1-2 | 30 |
| 1-3 | 40 |
| 2 | 50 |
| 3 | 60 |
| 4 | 70 |
| 4-1 | 80 |
| 5 | 90 |
| 6 | 100 |
- ID は、1 つの ID のみの場合は X (ダッシュなし) の形式になり、新しい ID (Y) が (X) の子である場合は (XY) の形式になります。
以下のように、新しい列 (合計金額) を出力に追加したいと思います。
| ID | AMOUNT | Total Amount |
---------------------------------
| 1 | 10 | 100 |
| 1-1 | 20 | 100 |
| 1-2 | 30 | 100 |
| 1-3 | 40 | 100 |
| 2 | 50 | 50 |
| 3 | 60 | 60 |
| 4 | 70 | 150 |
| 4-1 | 80 | 150 |
| 5 | 90 | 90 |
| 6 | 100 | 100 |
「合計金額」列は、ID列の(X)が同じである金額列の合計値を計算する列です。
親 ID (X) を取得するために、次の SQL を使用します。
SELECT ID, SUBSTRING (ID, 1, IIF (CHARINDEX('-', ID) = 0, len(ID), CHARINDEX('-', ID) - 1) ), Amount FROM tblTemp
SQL Server 2012 でこのようなクエリを実行するにはどうすればよいですか?
ここで sqlfiddleを使用してテストできます。
ありがとうございました
ペンガン