
お世話になります。
sqlserverのUPDATE文についてご教授ください。
以下テーブルでキーごとに金額1を累計金額1、金額2を累計金額2に集計しUPDATEしたいです。
参照(SELECT文)は実現できたのですがUPDATE文の書き方で悩んでいます。
申し訳ありませんがご教授ください。
【テーブル】
No キー 年月 金額1 金額2 累計金額1 累計金額2
1 001 201804 10,000 5,000 10,000 5,000
2 001 201805 20,000 6,000 30,000 11,000
3 002 201804 50,000 7,000 50,000 7,000
【SELECT文】
SELECT SUM(金額1) OVER (PARTITION BY キー
ORDER BY 年月
ROWS UNBOUNDED PRECEDING) AS 累計金額1,
SUM(金額2) OVER (PARTITION BY キー
ORDER BY 年月
ROWS UNBOUNDED PRECEDING) AS 累計金額2
FROM テーブル
ORDER BY キー,年月;
No.1ベストアンサー
- 回答日時:
UPDATE テーブル
SET 累計金額1 = A.累計金額1
, 累計金額2 = A.累計金額2
FROM (SELECT キー, 年月
, SUM(金額1) OVER(PARTITION BY キー
ORDER BY 年月
ROWS UNBOUNDED PRECEDING) AS 累計金額1
, SUM(金額2) OVER(PARTITION BY キー
ORDER BY 年月
ROWS UNBOUNDED PRECEDING) AS 累計金額2
FROM テーブル) AS A
WHERE テーブル.キー = A.キー
AND テーブル.年月 = A.年月;
みたいな感じ。
回答ありがとうございます。
試したところ以下(A.累計金額1とA.累計金額2)で構文エラーが出てしまいました。
下文の 'FROM テーブル) AS A' で定義しているので問題ないと思いますが。。。
UPDATE テーブル
SET 累計金額1 = A.累計金額1
, 累計金額2 = A.累計金額2
【構文エラー】
列名'累計金額1'が無効です。
列名'累計金額2'が無効です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
updateでグループ化
SQL Server
-
テーブルの集計値を別テーブルに更新したいのですが
MySQL
-
SQL 複数テーブルのupdate
Oracle
-
4
複数のテーブルから値を合計出力するSQLについて
MySQL
-
5
GROUP BYを行った後に結合したい。
Oracle
-
6
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
9
SQLSERVER 連番更新について
SQL Server
-
10
SELECT 文 GROUP での1件目を取得
SQL Server
-
11
更新不可能なクエリに対して更新クエリを実行する方法
Access(アクセス)
-
12
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
13
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
14
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
15
MAX値を条件にデータを取得するには?
SQL Server
-
16
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
17
テーブルレーコードをソートして更新するにはどうしたらいいでしょうか?
SQL Server
-
18
EXISTSを使ったDELETE文
SQL Server
-
19
同一テーブルのデータを参照してUPDATE
MySQL
-
20
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
更新クエリでキー違反
-
5
アクセス 日付抽出(年月のみ)...
-
6
sqlserverで対象のレコードを削...
-
7
sqlserverで集計結果をUPDATEし...
-
8
AccessのSQLで、FROM句の構文エ...
-
9
sqlplusでバックスペースが効か...
-
10
条件付き合計をSQLで
-
11
シャープレジスター エラーコード
-
12
Access 2010動きが遅い
-
13
「マスタ」と「テーブル」の違...
-
14
2つのテーブルから条件に一致...
-
15
2つの項目が重複するレコード...
-
16
SELECT時の行ロックの必要性に...
-
17
ビューで引数を使いたい
-
18
Access 1レコードずつcsvで出力...
-
19
大きなテーブルに対する問い合...
-
20
Access カレントレコードがあり...
おすすめ情報
公式facebook
公式twitter
補足させていただきます。
'No'の項目は使用できないことに気づきました。
以下訂正させていただきます。
何卒よろしくお願いいたします。
【テーブル】※修正後
キー 年月 金額1 金額2 累計金額1 累計金額2
001 201804 10,000 5,000 10,000 5,000
001 201805 20,000 6,000 30,000 11,000
002 201804 50,000 7,000 50,000 7,000
構文エラーはただの記載ミスでした。申し訳ありません。。。
期待する結果になったこと確認いたしました。
本当にありがとうございました。