![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) MAXで0が出力される 1 2022/03/31 21:43
- 確定申告 パートで年間累計支給額が12万で差引支給額6万くらいの 場合で2ヶ月に1回障害年金13万生活者支援給 2 2023/02/26 14:44
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- その他(保険) 投資目的の保険商品について。受取時にかかる税金について保険会社に質問しました。 商品を端的に説明する 3 2023/08/08 20:33
- 簿記検定・漢字検定・秘書検定 簿記3級 仕訳の問題です。 2 2022/09/23 22:03
- その他(保険) 介護保険料って月いくらですか? 2 2022/07/25 17:07
- 財務・会計・経理 パソコンの減価償却の質問になります (2022年1月31日決算) 2022年11月30日にパソコンを 2 2023/04/05 19:57
- 印紙税 確定申告について 3 2022/08/02 23:59
- 数学 複利毎月積み立てで年利からの計算方法 3 2023/01/11 15:56
- 年末調整 令和4年分 給与所得者の基礎控除申告書 兼 給与所得者の配偶者控除等申告書 兼所得金額調整控除申告書 3 2022/11/04 03:46
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
updateでグループ化
SQL Server
-
テーブルの集計値を別テーブルに更新したいのですが
MySQL
-
GROUP BYでエラーが発生
SQL Server
-
-
4
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
5
datetime型でNULL値を入れたい。
SQL Server
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
8
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
9
select文の実行結果に空白行を入れたい
MySQL
-
10
SQL文で右から1文字だけ削除するやり方
MySQL
-
11
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
12
sqlserverでUPDATEできません
SQL Server
-
13
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
14
データセットのレコード更新がしたい
Visual Basic(VBA)
-
15
Viewにインデックスは張れますか?
Oracle
-
16
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
17
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
18
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
19
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
20
GROUP BYを行った後に結合したい。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードの有無をすばやく検索...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
大学でSQLの授業があるのですが...
-
Accessにインポートした複数の...
-
主キーにインデックスは貼らな...
-
SELECT時の行ロックの必要性に...
-
Accessでの禁止文字チェック
-
Access 1レコードずつcsvで出力...
-
Access csvファイルで出力したい
-
Accessにインポートしたら並び...
-
SQLiteで最も古いレコードのみ...
-
SQLで○○の値以外を持っているレ...
-
SQLについて
-
ホームページがGOOGLEにインデ...
-
エクセル テーブル機能の不明点
-
位置を指定してフィールドを追...
-
ACCESSの削除処理
-
アクセスで重複データが消えて...
-
自分自身への矢印
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
オラクルではできるのにSQLSERV...
-
アクセス 日付抽出(年月のみ)...
-
違いを教えてください
-
更新クエリでキー違反
-
MAX値を条件にデータを取得する...
-
AccessのSQLで、FROM句の構文エ...
-
プライマリーキーで同じ値をUPD...
-
シャープレジスター エラーコード
-
sqlplusでバックスペースが効か...
-
ACCESSで複数テーブルを結合し...
-
F1キーを押すの 英訳
-
sqlserverで同一キー単位で金額...
-
sqlserverで対象のレコードを削...
-
アクセスで複数テーブルの選択
-
Access 2010動きが遅い
-
AccessテーブルでのF6キーにつ...
-
DB構成<キーの考え方>
-
accessでのリンクテーブルの更新
おすすめ情報
補足させていただきます。
'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
構文エラーはただの記載ミスでした。申し訳ありません。。。
期待する結果になったこと確認いたしました。
本当にありがとうございました。