お世話になります。
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も見ています
-
ゆるやかでぃべーと タイムマシンを破壊すべきか。
これはディベートの論題だと仮定したうえでの回答お願いします。あなたは、その末にタイムマシンを壊してしまうのか、使い道を探すのかどうかを考えてもらいたいです。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
updateでグループ化
SQL Server
-
テーブルの集計値を別テーブルに更新したいのですが
MySQL
-
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
-
4
sqlserverでUPDATEできません
SQL Server
-
5
GROUP BYを行った後に結合したい。
Oracle
-
6
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
7
ROWNUMでUPDATEをしたいのですが・・・。
Oracle
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
SQLServerでNULLを挿入したいです
SQL Server
-
10
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
11
SELECT 文 GROUP での1件目を取得
SQL Server
-
12
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
13
GROUP BYでエラーが発生
SQL Server
-
14
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
15
datetime型でNULL値を入れたい。
SQL Server
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
17
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
18
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
19
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
20
コンボボックスにキー入力をさせない方法(ACCESS VBA)
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
sqlserverで集計結果をUPDATEし...
-
sqlserverでUPDATEできません
-
accessでのリンクテーブルの更新
-
シャープレジスター エラーコード
-
sqlplusでバックスペースが効か...
-
Access2000へのインポートエラー
-
AccessのSQLで、FROM句の構文エ...
-
「マスタ」と「テーブル」の違...
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access VBA [リモートサーバー...
-
ACCESS2007 フォーム 「バリア...
-
SELECT時の行ロックの必要性に...
-
エクスポート時の改行コードに...
-
mysql IN句に1データだけ指定...
-
ACCESSでのエクセルインポート...
-
Access 1レコードずつcsvで出力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
オラクルではできるのにSQLSERV...
-
アクセス 日付抽出(年月のみ)...
-
AccessのSQLで、FROM句の構文エ...
-
違いを教えてください
-
更新クエリでキー違反
-
sqlserverで同一キー単位で金額...
-
sqlserverで対象のレコードを削...
-
シャープレジスター エラーコード
-
MAX値を条件にデータを取得する...
-
Access2000へのインポートエラー
-
access前月差分クエリ書き換え...
-
ACCESSで複数テーブルを結合し...
-
AccessテーブルでのF6キーにつ...
-
sqlplusでバックスペースが効か...
-
プライマリーキーで同じ値をUPD...
-
片方のテーブルにないデータを...
-
条件付き合計をSQLで
-
Access2つのテーブルの差額を...
おすすめ情報
補足させていただきます。
'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
構文エラーはただの記載ミスでした。申し訳ありません。。。
期待する結果になったこと確認いたしました。
本当にありがとうございました。