結合といくつかの条件によって作成された次のテーブルがあります。
product_id date
11111 2012-06-05
11111 2012-05-01
22222 2011-05-01
22222 2011-07-02
33333 2011-01-01
製品ごとの最新の日付を含む結果セットが得られるように行を取得しようとしています:
GOAL
product_id date
11111 2012-06-05
22222 2011-07-02
33333 2011-01-01
データをそのまま抽出して手動でソートすることもできますが、そうはしません。単一の行のみを返さずに SELECT MAX() を実行する方法を見つけることができないようです。製品 ID ごとにクエリを実行したくありません。
テーブルは次のクエリによって生成されます。
SELECT item_id, sales_price, item, description, transaction_date
FROM db.invoice_line AS t1 INNER JOIN db.invoices AS t2
ON t1.invoice_id = t2.id_invoices WHERE item IS NOT NULL
AND item_id != '800001E9-1325703142' AND item_id != '800002C3-1326830147'
AND invoice_id IN
(SELECT id_invoices FROM db.invoices
WHERE customer_id = '[variable customer id]'
AND transaction_date >= DATE_SUB(NOW(), INTERVAL 360 DAY));
結合を使用して日付列を「追加」します。あとは無駄なものは無視して、一年前から現在までの特定の顧客からの請求書の中から選びます。
ご指導ありがとうございます。
デーン