MYSQL5.5でクエリーを行いたいです。


TABLE1があります。

フィールドは下記になります。
ID,数量,価格

フィールドのデータは下記になります。
001,1,100
001,10,200
002,1,300
003,5,100
003,10,100

クエリで下記のデータを出力したいと思います。
ID,数量,価格,合計
001,1,100,300
001,10,20,300
002,2,300,600
003,5,100,600
003,1,100,600

合計というフィールドを作って、そこに数量と価格の合計を表示したいと思います。

sum(数量*価格) As 合計 Group by IDを行うと、各IDは1つに集約されてしまいます。
IDは集約されずに出力したい、けど合計はしたいといった場合、どのようなSQLに変更すればよいでしょうか?
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/11/11 11:45:03

回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

一例

SELECT t1.*
  , (
       SELECT SUM(`価格` * `数量`)
       FROM TABLE1 t2
       WHERE t2.ID = t1.ID
       GROUP BY t2.ID
    ) `合計`
FROM TABLE1 t1
id:akaired

できました!!大変感謝です!!ありがとうございます!!

2011/11/05 22:41:21
  • id:taknt
    副問い合わせにしてやる。

    合計だけ 別SQLで集計したのを ひとつの仮想テーブルにして
    それと リンクして 抽出すればいいだけ。
  • id:akaired
    takntさん ありがとうございます!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません