Samle flere queries i een med subqueries? - SQL-ekspert søges!!
Det her er godt nok fra en Access-db jeg arbejder på, men det er mest et SQL-spørgsmål, så derfor er den endt i Generelt.Jeg er er ved at få grå hår i hovedet af at spekulere på det her problem.
Er der nogen der kan gennemskue om følgende del-forespørgsler (fra Access) kan samles i een vha subqueries:
"fspBeregnUdlejede":
SELECT Sum(GrejTypeLeje.Antal) AS AntalUdlejede, Udlejning.AftaltUdleverDato, Udlejning.AftaltAfleverDato, GrejTypeLeje.GrejTypeID
FROM Udlejning INNER JOIN GrejTypeLeje ON Udlejning.UdlejningID=GrejTypeLeje.UdlejningID
GROUP BY Udlejning.AftaltUdleverDato, Udlejning.AftaltAfleverDato, GrejTypeLeje.GrejTypeID
HAVING (((Udlejning.AftaltUdleverDato)>#6/20/2009#));
"fspBeregnAntalUdlejede":
SELECT GrejType.GrejTypeID, Sum(IIf(IsNull([AntalUdlejede]),0,[AntalUdlejede])) AS AntUdlej
FROM GrejType LEFT JOIN fspBeregnUdlejede ON GrejType.GrejTypeID=fspBeregnUdlejede.GrejTypeID
GROUP BY GrejType.GrejTypeID;
"Samlende query"
SELECT GrejType.*, [Antal]-[AntUdlej] AS antalLedige
FROM GrejType INNER JOIN fspBeregnAntalUdlejedeSum ON GrejType.GrejTypeID = fspBeregnAntalUdlejedeSum.GrejTypeID;
Tabellerne ser nogenlunde sådan ud:
GrejType
GrejTypeId
Betegnelse
...
GrejTypeLeje
GrejTypeId
UdlejningId
Antal
Udlejning
UdlejningID
AftaltUdleverDato
AftaltAfleverDato
...
Det skal siges at det virker sådan set fint, sålænge jeg kører det ved hjælp af Access's del-forespørgsler, bortset fra når jeg ændrer den faste dato #6/20/2009# til en variabel (Me!AftaltUdleverDato), selvom dette felt findes i den åbnende formular.
Måske er variablen for langt inde i udtrykket til at Access kan gennemskue det, i alle fald beder den hver gang mig om at taste værdien ind, selvom den som sagt er til stede, både i formularen der åbner og den der åbnes.
Derfor var min tanke at tage fuld kontrol ved at samle hele forespørgslen i en SQL-sætning, og så bare pådutte den kontrolkilden på den formular der skal bruge den.
Så kan jeg jo snildt styre variable betingelser.
Men her er det så jeg har brug for hjælp, for det er godt nok dejligt kompliceret med alle de aggregerede udtryk inde i joins ;)