SOM functie

Status
Niet open voor verdere reacties.

PatrickSt

Gebruiker
Lid geworden
1 okt 2010
Berichten
38
Hallo, ik zal graag nog een keer een beroep doen op de wijsheid hiero,

Ik wil namelijk graag een query hebben waar een - functie inzit, dus betaald - prijs = uitkomst,

Nou had ik zelf al wat geprobeerd maar werkt niet.

Code:
SELECT cu.naam, cu.roepnaam, SUM ([cr.betaald] - [c.curs_prijs]) AS "Te Betalen"
FROM cursist AS cu, cursus AS c, c_regel1 AS cr
WHERE cu.cursistnr = cr.cursistnr
GROUP BY cu.naam, cu.roepnaam
Deze werkt wel maar niet zoals ik bedoel de uitvoer die hij geeft klopt niet.

Code:
naam	roepnaam	"""Te Betalen"""
BROEKEN	BRAM	7750
KRIMPEN	TANJA	
NORBART	NIELS	10700
VOS	HENK	5100

Want bij Bram Broeken moet komen te staan : niks
Tanja Krimpen moet komen te staan : 5700
Niels Norbart moet komen te staan : Niks
Henk Vos moet komen te staan : 400

Groeten Patrick
 
Laatst bewerkt:
Op basis van deze gegevens kan ik niet zien wat er verkeerd is. In mijn testversie die ik nog had geeft deze query de juiste totalen:

Code:
SELECT cursist.CURSISTNR, cursist.NAAM, cursist.ROEPNAAM, Sum([BETAALD]-[CURSUS]![CURS_PRIJS]) AS [Te Betalen]
FROM cursist INNER JOIN (cursus INNER JOIN c_regel1 AS cr ON cursus.CURS_CODE = cr.CURS_CODE) ON cursist.CURSISTNR = cr.CURSISTNR
GROUP BY cursist.CURSISTNR, cursist.NAAM, cursist.ROEPNAAM;
 
De query zoals ik heb nu heb.

Code:
SELECT cu.naam, cu.roepnaam, SUM ([c.curs_prijs] - [cr.betaald])  AS [Te Betalen]
FROM cursist AS cu, cursus AS c, c_regel1 AS cr
WHERE cu.cursistnr = cr.cursistnr
AND cr.curs_code = c.curs_code
GROUP BY cu.naam, cu.roepnaam

geeft de zelfde uitvoer zoals die van jou ook doet maar dat is niet correct, want Tanja heeft de cursussen DB3 en OA2 nog niet betaald, totaal 5700 en die geeft hij niet weer, waarschijnlijk omdat ook in de tabel c_regel1 allebij de velden leeg zijn?
 
Klopt; dat kun je met deze regel ondervangen:
Code:
Te Betalen: nz([BETAALD])-[CURSUS]![CURS_PRIJS]
 
Dit is de uitvoer die ik krijg bij jouwn query,

Code:
CURSISTNR	NAAM	ROEPNAAM	Te Betalen
2	KRIMPEN	TANJA	
14	NORBART	NIELS	0
64	BROEKEN	BRAM	0
88	VOS	HENK	-400

Dan staat Tanja nog steeds op niks terwijl je moet betalen.
 
Bij mij doet-ie het prima :)

Code:
SELECT cursist.CURSISTNR, cursist.NAAM, cursist.ROEPNAAM, Sum(nz([BETAALD])-CURSUS!CURS_PRIJS) AS [Te Betalen]
FROM cursus INNER JOIN (cursist INNER JOIN c_regel1 AS cr ON cursist.CURSISTNR = cr.CURSISTNR) ON cursus.CURS_CODE = cr.CURS_CODE
GROUP BY cursist.CURSISTNR, cursist.NAAM, cursist.ROEPNAAM;
 
Klopt jouwn tweede query werkt wel.

Maar wat doet die NZ nou dan?

En deze is gemaakt met de JOIN operator, kan hij ook in sub query gemaakt worden? want ik snap nu de subquery een beetje en de join snap ik nog niet helemaal:$
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan