ID_customer, order_nr, order_date
Chcę w możliwie najprostszy sposób wyszukać w niej takich klientów, dla których przerwa pomiędzy ostatnim a przedostatnim zamówieniem to dokładnie 6 miesięcy.
SELECT o.order_nr FROM orders o WHERE NOT EXISTS (SELECT 1 FROM orders WHERE id_customer = o.id_customer AND o.order_date < order_date) /*1. nie ma nowszych zamówień – to jest ok*/ AND EXISTS (SELECT 1 FROM sales_order WHERE id_customer = o.id_customer AND DATE_SUB(substr(o.order_date,1,10), INTERVAL 6 MONTH) = substr(order_date,1,10) ) /*2. odstęp między przedostatnim a ostatnim zamówieniem to dokladnie 6 mies*/
Problem jest w drugim warunku. Zwraca mi bardzo różnych klientów, np. takich, których ostatnie i przedostatnie zamówienie dzieli dwa dni O-o
Jakaś podpowiedź?