私は注文とラインテーブルを持っています。異なるパラメータで類似のクエリを実行します。
注文には1行以上の行を付けることができます。
ラインリファレンス製品(購入品)、date_at(あなたがチケットを考えることができる。あなたはこのチケットを使用することができます日付)
create table o (
id integer NOT NULL
);
CREATE TABLE line (
id integer NOT NULL,
order_id integer NOT NULL,
product_id integer NOT NULL,
date_at date
);
私は日付ごと持っているどのように多くのbookings/reservations
を探しています。 私は今、私は各製品の結果を希望する各日付
select date(t3.date_at), count(*)
from (
select t1.id, date(t2.date_at) as date_at, count(*)
from o t1
inner join line t2 on t1.id = t2.order_id
group by t1.id, date(t2.date_at)) t3
group by date(t3.date_at);
ため(date_at, count)
のリストを取得することができます。
つまり、それぞれのproduct_idが必要です。商品を含む注文(少なくとも1行にproduct_id
が含まれている注文)の(date, count)
のリストを取得したいと考えています。
私は別の{product_id}
でループで次のクエリを実行できますが、私はpostgresのを使用しています良い方法
select date(t3.date_at), count(*)
from (
select t1.id, date(t2.date_at) as date_at, count(*)
from o t1
inner join line t2 on t1.id = t2.order_id
where t2.product_id={product_id}
group by t1.id, date(t2.date_at)) t3
group by date(t3.date_at);
があるかもしれませんね。
なぜ注文日を 'line'テーブルに入れるのですか?また、使用しているデータベースで質問にタグを付けてください。 –
日付ごとの注文数を取得するには注文IDでグループ化しないでください – Lamak
@GordonLinoff注文書を編集しました。注文日ではなく、商品に関連付けられた日付です。 – eugene