私は2日間答えを探していましたが、まだ何もありません。私を助けてください。
製品、製品の価格、およびこの価格が登録された日付のデータベースがあります。
product_id | price | date
-------------------------
1 | 8.95 | 2012-12-01
2 | 3.40 | 2012-12-01
1 | 9.05 | 2012-12-19
3 | 2.34 | 2012-12-24
3 | 2.15 | 2012-12-01
1 | 8.80 | 2012-12-19
1 | 8.99 | 2012-12-02
2 | 3.45 | 2012-12-02
同じ日に商品の価格が異なる可能性があることを確認します (行 3 と 6)。これは、1 つの製品に対して多数のサプライヤーが存在するためです。データベースにもサプライヤーの列がありますが、ソリューションとは無関係であることがわかりました。私が間違っている場合は、ソリューションに追加できます。
基本的に私が望むのは、次のように、2 つの結合されたデータ セットを返すクエリを作成することです。
- 最初のセットは、先月に挿入された製品の最低価格によって作成されます。今日は 1 月 15 日なので、クエリは行 3、4、および 6 を読み取り、最低価格を適用して、行 4 と 6 のみを返す必要があります。どちらも先月のその製品の最低価格です。
- 2 番目のセットは、先月に価格が登録されていない、最後に挿入された製品によって作成されます。つまり、最初のセットに表示されていない製品の場合、クエリは最後に挿入された製品を検索する必要があります。
それが明確であることを願っています。そうでない場合は、もっと聞いてください。
このデータベースのクエリ結果は次のようになります。
product_id | price | date
-------------------------
1 | 8.80 | 2012-12-19 <-Min price for product 1 on last month
3 | 2.34 | 2012-12-24 <-Min price for product 3 on last month
2 | 3.45 | 2012-12-02 <-No reg for product 2 on last month, show last reg.
すべてを試しました: UNION、(DATE_SUB(CURDATE()、INTERVAL 1 MONTH)、MIN(価格)、MAX(日付) など。