1

OK、2 つのテーブルを比較してから、名前の 3 分の 1 からリストを入力して、過去 10 日間の値の合計を作成しようとしています。クエリは実行されますが、NULL の結果と 1 つの結果のみが返されます。DATE_ADD を削除してデータベースから実際の日付に置き換え、サブクエリを使用する代わりに left 句の値を入力すると、その特定の日付を探しているものが得られます。私がやりたいことは、その日と過去 10 日間の値を持つ名前のリストを作成することです。私はこれを正しく行っていないと確信しているので、私はこれにかなり慣れていないので、助けていただければ幸いです。単純なクエリは簡単ですが、このような複雑なものを配置するのは初めてです。

select sum(t.price) from td.trs as t
inner join td.order as o on o.trsid=t.id
inner join pts.product as p on p.id=o.grp_id
where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)
and left(t.mfgid,3) IN (select name from name.list);
4

2 に答える 2

1

変化する

where t.invoice_date=DATE_ADD(CURRENT_DATE(),INTERVAL 10 DAY)

where t.invoice_date >= DATE_ADD(CURRENT_DATE(),INTERVAL -10 DAY)
于 2012-11-26T20:25:18.593 に答える
0

10 日先の日付が表示される を実行DATE_ADDしているため、おそらく結果は得られません。CURRENT_DATE()過去 10 日間のすべてのアイテムを取得する場合は、

WHERE t.invoice_date BETWEEN CURRENT_DATE() AND DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)
于 2012-11-26T20:28:53.470 に答える