У меня есть следующая таблица, созданная присоединиться и некоторыми условными:Выбор последних строк в подгруппах
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(), не возвращая только одну строку, и я бы предпочел не запускать запрос для каждого идентификатора продукта.
таблица генерируется запрос:
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));
Я использую присоединиться к «добавить» столбец даты. После этого я игнорирую бесполезные предметы и выбираю из счетов от конкретного клиента с года назад до настоящего времени.
Спасибо за любые рекомендации.
Dane
работает отлично, спасибо. – Danedo