webForumDet fria alternativet

Villkor i IN (...)

5 svar · 536 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

Hej!

Jag har följande kod:

SELECT * FROM tblCustomer WHERE [Nr] IN ( SELECT CustomerNr FROM tblTask WHERE PlanStartDate < GetDate()-730 ) AND Custom3 = '1 Privatkund'

Tanken är att den ska lista alla kunder som inte har uppdrag på sig de senaste två åren.

Problemet är dock:

Om en kund har två uppdrag, säg 2006-01-01 och 2007-05-08 så vill jag ju inte få träff på den kunden eftersom det senaste uppdraget gjordes utanför villkoret. Men, ovanstående SELECT listar ju kunden eftersom ett av uppdragen är gjort utanför tvåårsgränsen...

Hur kan jag göra för att få träff endast om det senaste uppdraget är är gjort längre tillbaks i tiden än 2 år?

Jag måste skriva det enligt:

SELECT * FROM tblCustomer WHERE ...

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#2
SELECT * FROM tblTask t WHERE NOT EXISTS ( SELECT * FROM tblTask WHERE PlanStartDate >= GetDate()-730 ) AND nr = t.nr)
devotionMedlem sedan jan. 20013 582 inlägg
#3

:)

Problemet är att jag måste använda:

SELECT * FROM tblCustomer WHERE ...

Det måste skrivas så, jag kan inte lägga till några alias just där... :(

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#4
SELECT * FROM tblTask WHERE [Nr] NOT IN ( SELECT CustomerNr FROM tblTask WHERE PlanStartDate >= GetDate()-730 ) AND Custom3 = '1 Privatkund' )
devotionMedlem sedan jan. 20013 582 inlägg
#5

Hej!

Jag var nog trött igår...

SELECT * FROM tblCustomer WHERE ...

Måste det börja med.. :-)

mvh
H

devotionMedlem sedan jan. 20013 582 inlägg
#6

Thanx! :-)

138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)