###前提・実現したいこと
MySQLで詰まっています。
1つのSQLであるカラムの集計(該当する項目のみ)集計に関係のないカラムの値が取りたいです。可能であればSQL文を教えてください。
###発生している問題・エラーメッセージ
簡単にするために以下のようなテーブルを作ってみました。
<testテーブル>
id int ai
up_time datetime
qty int
sub_id int
picupno int
データ
id up_time qty sub_id picupno
1 2017-10-01 00:00:00 20 1 0
2 2017-09-30 07:00:00 30 1 0
3 2017-10-02 00:00:00 100 2 1
4 2017-10-03 07:00:00 200 2 2
読みにくくてすいません。
sub_idごとにqtyの合計が必要です。更にsub_idごとのup_timeの毎の一番新しいup_timeとpicupnoが欲しいのです。
望む結果は、
up_time picupno sum(qty)
2017-10-01 00:00:00 1 50
2017-10-03 07:00:00 2 300
up_timeの最新(sub_idごとの)でその行のpicupnoとsub_idごとのsum(qty)です。
###試したこと
SELECT *,sum(qty
) FROM test
WHERE sub_id
IN(1,2) GROUP BY sub_id
や
SELECT *,max(up_time
), sum(qty
) FROM test GROUP BY sub_id
order by up_time
DESC
いづれもup_timeが直近ではなく、picupnoも望むものではありません。
よろしくお願いいたします
###補足情報(言語/FW/ツール等のバージョンなど)
実動環境では
SELECT *,sum(qty
) … GROUP BY sub_id
とかやると非集約ラムは参照できないというようなエラーが発生します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/04 13:43