0

ORDERテーブルの一致するis_paidフィールドが0000-00-00でない場合にのみ、ORDER_ITEMSテーブルのすべての価格フィールドを合計する必要があります。

ORDER_ITEMSテーブル
id
価格

ORDERテーブル
id
is_paid

テーブルデータの例は次のようになります。

ORDER_ITEMS
ID価格
1 1.25
1 0.75

2 1.25
2 0.50
2 2.50

注文
id is_paid
1 0000-00-00
2 2013-02-27

したがって、上記のデータは次のようになります。id:2 sum:4.25

id 1は支払われず(したがって、価格の合計が何であるかは気にしないでください)、id 2が支払われるので、id2の価格フィールドの合計が何であるかを気にします。

どうもありがとうございます

4

2 に答える 2

1

sum()集計関数とGROUP BY各注文IDを使用する必要があります。

select o.id, sum(oi.price) Total
from orders o
inner join ORDER_ITEMS oi
  on o.id = oi.id
where o.is_paid != '0000-00-00'
group by o.id

SQL FiddlewithDemoを参照してください

于 2013-02-27T19:47:51.783 に答える
0

'0000-00-00'以外のすべての注文の合計が必要な場合は、bluefeetのコードから「groupby」を削除してください

コードはselecto.id、sum(oi.price)注文からの合計o内部結合ORDER_ITEMS oi on o.id = oi.id where o.is_paid!= '0000-00-00'

注文IDごとの合計が必要な場合は、bluefeetのコードが正しいです。

于 2013-02-27T20:37:12.143 に答える