laatste orderdatum per klant in sql

Status
Niet open voor verdere reacties.

bvdzwart

Gebruiker
Lid geworden
9 jan 2017
Berichten
19
Hallo,

Ik wil dmv een sql query een overzicht uit de DB trekken van de klanten die de laatste 6 maanden niet actief zijn geweest.
Heb al het een en ander geprobeerd met MAX en TOP maar krijg niet het gewenste resultaat.

Ik begin als volgt:

select o.datum
,k.ID


from opdracht o
left join klant k on k.id = o.KlantID


where k.actief = 1


Is er een command in de WHERE die me de klanten laat zien waarvan de laatste orderdatum 6 maanden geleden was?
 
Als de order tabel een "DATE" formaat heeft kan dat met een date vergelijking. ondersteunde "DATE" functies verschillen helaas per DB. dus het exacte type database is wel belangrijk om te weten om een exact antwoord te geven.

MS-SQL heeft een datediff functie die kunt gebruiken

WHERE datediff(month, o.date, now()) >5
 
thnx voor het antwoord maar dat geeft niet het resultaat dat ik zoek.
Krijg nu meerdere orderdata per klant en ook klanten die de laatste maanden wel orders hebben geplaatst.
Wat ik wil zien is alleen is alleen de klanten die al 6 maanden geen order hebben geplaatst en van die klanten alleen de laatste order.
enig idee?
 
Als je eerst een subquery doet op de laatst geplaatste order en vervolgens met deze where clause rest beperkt zou het moeten lukken.

1) je hebt een MS-SQL database?
2) heb je eerste (sub)query al beperkt tot de laatste order?

beperken tot de laatste order zou wel moeten lukken toch met MAX/TOP ?
 
Gebruik een subquery.
Voorzetje (zelf aanpassen naar jouw situatie + ik ben geen MySQL expert):

select k.ID, max(o.datum)
from opdracht o
inner join klant k on k.id = o.KlantID
where not exist
(select 1
from opdracht o1
where o1.KlantID = o1.KlantID
and o1.datum >=DATE_SUB(CURDATE(), INTERVAL 5 MONTH)
);

Tardis
 
Allen bedankt voor het mee denken.
Met een beetje rommelen ben ik waar ik wezen wil. thnx
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan