18. december 2004 - 11:22
Der er
4 kommentarer og
1 løsning
Hjælp til forespørgsel - med dobbelt modsigelse
Hejsa
Hvis man nu har disse tabeller:
Kamp:
kSted, kStartTid, kSlutTid, kDato, kRegion...(kSted + kStartTid=PK)
Dommer:
dNavn, dRegion,...(dNavn + dRegion=PK)
Kamp-Dommer:
kStedFK, kStartTidFK, dNavnFK, dRegionFK
Hvordan finder jeg så de dommere, der dømte samtlige kampe en give dato i deres region?
Jeg har forsøgt med:
SELECT dNavnFK
FROM Kamp-Dommer, Dommer
WHERE dRegionFK = dRegion
AND
NOT EXISTS (SELECT *
FROM Kamp
WHERE kDato<>DATE('01/08/2004') )
Men det giver et tomt resultat :(
Håber nogen kan se, hvad jeg gør forkert.
På forhånd tak, mvh
Torben
18. december 2004 - 16:06
#1
- et bud...
SELECT DISTINCT
Dommer.dNavn
FROM
Kamp JOIN
Kamp-Dommer ON
Kamp.kDato = @selectedDate AND
Kamp.kSted = Kamp-Dommer.kStedFK AND
Kamp.kStartTid = Kamp-Dommer.kStartTidFK
Det er lidt noget bøvl med dine sammensatte primærnøgler.
18. december 2004 - 16:18
#2
Hej atke. Tak for budet :)
Men dit forslag - vil det ikke blot give en liste over alle dommere, der har dømt en given dag? og ikke en liste over de dommere, der har dømt alle kampe en given dag...
18. december 2004 - 20:35
#3
Prøv:
SELECT dNavn
FROM Dommer d
WHERE
EXISTS (SELECT * FROM Kamp-Dommer kd WHERE kd.dNavnFK=d.dNavn AND kd.dRegionFK=d.dRegion AND kd.kSTartTidFK=X)
AND
NOT EXISTS (SELECT * FROM Kamp-Dommer kd WHERE kd.dNavnFK<>d.dNavn AND kd.dRegionFK=d.dRegion AND kd.kSTartTidFK=X)
19. december 2004 - 14:50
#4
Det er super Arne, smid du bare et svar :)
Dog skulle der bruges <> i sidste select sætning i stedet for =.
Mange tak for hjælpen, mvh
Torben