
No.2ベストアンサー
- 回答日時:
>既にテーブルにデータが
>保存されていますのでsumの値を更新してテーブルに保存をしたい
テーブルを毎回全レコード対象に更新するのはあまりお勧めしませんが
以下でできないことはない。
ただしホントに必要な処理なのかはよく考えて運用ください
//テストデータ
create table hoge(id int not null primary key,money int,sum int null);
insert into hoge(id,money) values(1,12),(2,20),(3,22);
update hoge set sum=(select @a:=@a+money from (select @a:=0) as dummy) order by id;
No.1
- 回答日時:
一番単純にやる場合2行のSQLにわけること
set @a=0;
select id,money,@a:=@a+money as sum from hoge order by id;
これを1行でやる場合、サブクエリを使ってこう
select id,money,(select @a:=@a+money from (select @a:=0) as dummy) as sum from hoge order by id;
SQLはレコードに順位がないので、このような累計データを取る場合は
かならず順位づけをするorder byを指定します。
またidがかならずユニークである前提であればこのようにもかけます
select id,money,(select sum(money) from hoge as h2 where h2.id<=h1.id) as sum from hoge as h1;
この回答へのお礼
お礼日時:2016/02/07 14:45
有難う御座います。
なるほど。毎回に頭が下がります。
未だ未だ私には分からない事ばかりで、お手数をおかけしています。
やって見ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
VIEWの元のテーブルのindexって...
-
期間の重複を調べるSQL文につい...
-
エクセルの関数について教えて...
-
クエリ表示と、ADOで抽出したレ...
-
LEFT JOIN と GROUP BY
-
select文のwhere句に配列を入れ...
-
カラム名でseqとidではどちらが...
-
【Transact-sql】 execの結果を...
-
PDOで取得すると全てSTRING型で...
-
sqlで、600行あるテーブルを100...
-
ストアド内でカラム名一覧を取得
-
最小値をUPDATE
-
T-SQLの sp_executesql について
-
ソート順の一番若い者を取得する
-
[MySQL] 3つのテーブルの結合で...
-
このSQL文の意味を教えてくださ...
-
テーブル名を省略して「h.id」...
-
mysqlで日付が比較できない・・・
-
副問合せの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
Unionした最後にGROUP BYを追加...
-
SQL Left Join で重複を排除す...
-
別のDB(Table)からの複数行の...
-
エラー 1068 (42000): 複数の主...
-
DB設計について
-
VIEWの元のテーブルのindexって...
-
同じサーバーで、異なるデータ...
-
SQLサーバから、項目の属性(型...
-
クエリ表示と、ADOで抽出したレ...
-
SQLにて特定の文字を除いた検索...
-
select文のwhere句に配列を入れ...
-
【SQL文】Insert into文で文法...
-
カラム名でseqとidではどちらが...
-
マイクラPC版のコマンドで効率...
-
Access パラメータクエリをcsv...
-
[MySQL] 1対多のリレーションで...
-
PL/SQLの変数について
-
MySQLにてCOUNTした値を更にCOUNT
おすすめ情報
さっき投稿して気が付きましたが、この場合は既にテーブルにデータが
保存されていますのでsumの値を更新してテーブルに保存をしたいので
すが。
updateを使っての更新クエリーと言うのはどうなるんでしょうか。
またまた、宜しくお願いします。
updateも、selectも上手く行きました。
有難う御座いました。