uddenMedlem sedan mars 200174 inlägg ms sql.
har en tabell med ordrar, tblorder
har en tabell med produkter i ordrarna, tblorderprod
har en tabell med status till varje produkt, tblstatus
nu vill jag välja ut alla ordrar där ALLA produkterna tillhörande denna order har en viss status, t.ex "klar". Just det med alla är ju ett problem då jag inte vet hur man håller reda på ifall en av många produkter uppfyller kravet.
kan ju göra det med 2 recordset, ett för varje order och sedan för varje order gå igenom alla produkter och se om alla har denna status, men går detta att göra med en sqlsats?
blir glad för lite tankegånger, för oss mig står det helt still...
LarsGMedlem sedan dec. 200012 464 inlägg select * from tblorder tord
where not exists
(select * from tblStatus
where status <> 'Klar'
and orderid = tord.orderid )
Osäker på hur tabellerna är relaterade så jag gissade lite.
cyprysMedlem sedan dec. 20003 563 inlägg Fundering: Undrar vad SQL-forumet skulle vara utan LarsG :)
/r Förlåt om det var lite offtopic
uddenMedlem sedan mars 200174 inlägg så sant så sant..
ja det kan man undra.
förstår inte hur du skalar ner så enkelt LarsG, men man blir ju knappast förvånad längre?
hade inte en tanke på not in, men det är ju huvudet på spiken. som alltid :)
mkt tacksam..
uddenMedlem sedan mars 200174 inlägg epilog
ok. fungerar nu helt.
blev 6 inner joins och 2 subselect, och grunden var din lösning larsG, lite småchockad att denna sqlsats fungerar, men klaga ska man ju inte... ifall ngn nyfiken (heh) vill se så blev den så här:
strSQL = "SELECT ord.intId AS intId_ord, ord.datDate AS datDate " &_
"FROM tblOrder_ord ord " &_
"WHERE NOT EXISTS " &_
"(SELECT orp.intId_ord AS intId_ord " &_
"FROM ((tblOrderProduct_orp orp INNER JOIN " &_
"tblOrp_Link_tblSta_ols ols ON " &_
"orp.intId = ols.intId_orp) INNER JOIN " &_
"(tblStatus_sta sta INNER JOIN " &_
"tblStatusCode_sco sco ON sta.intId_sco = sco.intId) ON " &_
"ols.intId_sta = sta.intId AND sta.intId IN " &_
"(SELECT TOP 1 sta2.intId " &_
"FROM tblStatusCode_sco sco2 INNER JOIN " &_
"(tblStatus_sta sta2 INNER JOIN " &_
"(tblOrp_Link_tblSta_ols ols2 INNER JOIN " &_
"tblOrderProduct_orp orp2 ON " &_
"ols2.intId_orp = orp2.intId) ON " &_
"sta2.intId = ols2.intId_sta) ON " &_
"sco2.intId = sta2.intId_sco " &_
"WHERE orp2.intId = orp.intId " &_
"ORDER BY sta2.datDate DESC, sco2.intRank DESC" &_
")" &_
") " &_
"WHERE sco.intRank <> '6' AND orp.intId_ord = ord.intId) " &_
"AND ord.intSent <> 1"