0

私はこのようなデータベースを持っています

ID      DATE        QTY  PRICE
1   05-02-13 00:45  70  0
1   05-02-13 00:45  25  20000
1   05-02-13 00:45  3   1750000
1   05-02-13 00:45  50  0
1   05-02-13 00:45  5   0
1   05-02-13 00:45  200 0
1   05-02-13 00:45  15000   8500
8   11-02-13 16:27  150 17000
8   11-02-13 16:27  150 2000
9   11-02-13 21:40  1   7500000
9   11-02-13 21:40  1   15000000
1   15-02-13 15:15  70  0
1   15-02-13 15:15  25  20000
1   15-02-13 15:15  3   1750000
1   15-02-13 15:15  50  0
1   15-02-13 15:15  5   0
1   15-02-13 15:15  200 0
1   15-02-13 15:15  15000   8500

そして、次のようなデータのみを表示するには、MySQLのクエリが必要です。

ID     DATE         QTY  PRICE
8   11-02-13 16:27  150 17000
8   11-02-13 16:27  150 2000
9   11-02-13 21:40  1   7500000
9   11-02-13 21:40  1   15000000
1   15-02-13 15:15  70  0
1   15-02-13 15:15  25  20000
1   15-02-13 15:15  3   1750000
1   15-02-13 15:15  50  0
1   15-02-13 15:15  5   0
1   15-02-13 15:15  200 0
1   15-02-13 15:15  15000   8500

だから私は数量*価格を合計することができます

その唯一のユーザー最新IDと合計QTY*PRICE

4

1 に答える 1

0

max(date)サブクエリを使用してそれぞれのを選択しid、それをテーブルに結合して結果を取得できるはずです。

select t1.id,
  t1.date,
  t1.qty,
  t1.price
from yourtable t1
inner join
(
  select id, max(date) MaxDate
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.date = t2.maxdate

SQL FiddlewithDemoを参照してください。

次にsum()、結果が必要な場合は、次を使用します。

select t1.id,
  t1.date,
  sum(t1.qty *t1.price) Total
from yourtable t1
inner join
(
  select id, max(date) MaxDate
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.date = t2.maxdate
group by t1.id, t1.date

SQL FiddlewithDemoを参照してください

于 2013-02-24T18:40:04.753 に答える