Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mySql] Wyszukanie ostatniego i przedostatniego zamówienia (z zaznaczeniem różnicy w dacie)
alekto
post 17.12.2013, 23:50:45
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.06.2013

Ostrzeżenie: (0%)
-----


Mam tabele ‘orders’ ktora wyglada w uproszeniu tak:

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.

  1. SELECT o.order_nr
  2. FROM orders o
  3. 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*/
  4. AND EXISTS (SELECT 1 FROM sales_order WHERE id_customer = o.id_customer
  5. AND DATE_SUB(substr(o.order_date,1,10), INTERVAL 6 MONTH) = substr(order_date,1,10)
  6. ) /*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ź?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 17:13