Group by query met critera

Status
Niet open voor verdere reacties.

Nico84

Gebruiker
Lid geworden
21 jul 2011
Berichten
191
Deze query werkt:

Code:
SELECT tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal, Count(tbl_Debiteuren.DebiteurID) AS AantalRecords, [LeveringAantal]-[AantalRecords] AS Verschil
FROM tbl_Debiteuren INNER JOIN tbl_Route ON tbl_Debiteuren.DebiteurID = tbl_Route.DebiteurID
GROUP BY tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal;

Maar voeg ik in het veld Verschil een criteria toe >0 om de lege records eruit te halen,
krijg ik de melding parameterwaarde opgeven voor het veld AantalRecords.

Code:
SELECT tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal, Count(tbl_Debiteuren.DebiteurID) AS AantalRecords, [LeveringAantal]-[AantalRecords] AS Verschil
FROM tbl_Debiteuren INNER JOIN tbl_Route ON tbl_Debiteuren.DebiteurID = tbl_Route.DebiteurID
GROUP BY tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal
HAVING ((([LeveringAantal]-[AantalRecords])>0));

Wat doe ik fout?
 
Probeer deze variant eens:
Code:
SELECT tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal, Count(tbl_Debiteuren.DebiteurID) AS AantalRecords, [LeveringAantal]-[AantalRecords] AS Verschil
FROM tbl_Debiteuren INNER JOIN tbl_Route ON tbl_Debiteuren.DebiteurID = tbl_Route.DebiteurID
WHERE ([LeveringAantal]-[AantalRecords]>0)
GROUP BY tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal
 
Werkt ook niet.
De query hierboven is niet helemaal juist. Denk foutje gemaakt. Hieronder is de juiste.

Code:
SELECT tbl_Debiteuren.DebiteurID, tbl_Debiteuren.Naam, tbl_Debiteuren.LeveringAantal, Count(tbl_Route.DebiteurID) AS AantalRecords, [LeveringAantal]-[AantalRecords] AS Verschil
FROM tbl_Debiteuren LEFT JOIN tbl_Route ON tbl_Debiteuren.DebiteurID = tbl_Route.DebiteurID
GROUP BY tbl_Debiteuren.DebiteurID, tbl_Debiteuren.Naam, tbl_Debiteuren.LeveringAantal
HAVING ((([LeveringAantal]-[AantalRecords])>0))
ORDER BY tbl_Debiteuren.DebiteurID;
.

Korte uitleg wat de bedoeling is:
In de tabel Debiteuren staat hoe vaak een debiteur beleverd moet worden. (veld LeveringAantal)
In de tabel Route is een debiteur een aantal keer gekoppeld aan een auto.
Door dan de een groupby query te maken krijg ik het aantal hoe vaak een debiteur voorkomt in de tabel route.
Door AantalVanDebiteurID aftrekken van LeveringAantal krijg ik te zien of de debiteur vaak genoeg ingedeeld is.

Tot zo ver werkt de query.

Voeg ik als criteria >0 toe om alleen de records te zien waar een verschil is,
krijg ik de melding parameterwaarde opgeven voor het veld AantalRecords.

Als je een voorbeeldje wil hoor ik wel.
 
Je werkt op een veld uit de query die bij het uitvoeren ervan niet bestaat. Vandaar de Parametervraag.
Code:
SELECT tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal, Count([RouteID]) AS AantalRecords, [LeveringAantal]-[AantalRecords] AS Verschil
FROM tbl_Debiteuren INNER JOIN tbl_Route ON tbl_Debiteuren.DebiteurID = tbl_Route.DebiteurID
GROUP BY tbl_Route.DebiteurID, tbl_Debiteuren.LeveringAantal
HAVING ((([LeveringAantal]-Count([RouteID]))>0));
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan