Avatar billede it-dyret Nybegynder
09. februar 2002 - 00:44 Der er 3 kommentarer og
2 løsninger

WHERE-betingelse på beregnet sum

Jeg vil gerne udvide nedenstående SQL til kun at omfatte T.TransaktionsKategori, hvor summen for denne kategori > 0.

SELECT T.TransaktionsKategori, sum(T.Beloeb) FROM TblTransaktioner AS T WHERE T.TransaktionsGruppe='Tilgodehavender' GROUP BY T.TransaktionsKategori;

Det virker desværre ikke, blot at skrive WHERE-betingelsen således
WHERE T.TransaktionsGruppe='Tilgodehavender' AND sum(T.Beloeb)>0
da Access skriver, at man ikke kan bruge en aggregatfunktion i en WHERE-betingelse...

Så hvordan gør man det?
Avatar billede proaccess Nybegynder
09. februar 2002 - 12:57 #1
Du skal bruge HAVING, prøv med:

SELECT T.TransaktionsKategori, Sum(T.Beloeb) AS SumBeloeb FROM TblTransaktioner AS T GROUP BY T.TransaktionsKategori
HAVING T.TransaktionsGruppe='Tilgodehavender' AND Sum(T.Beloeb)>0;
Avatar billede it-dyret Nybegynder
09. februar 2002 - 16:08 #2
Det virker desværre ikke. Access kommer med følgende fejlmeddelelse:

"Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "T.TransaktionsGruppe='Tilgodehavender' And sum(T.Beloeb)>0" som en del af en aggregatfunktion."

Har du et andet bud? Og hvordan virker HAVING funktionen i SQL?
Avatar billede it-dyret Nybegynder
09. februar 2002 - 16:14 #3
Jeg fik pludselig en ide og prøvede med følgende, som virker:

SELECT T.TransaktionsKategori, sum(T.Beloeb) FROM TblTransaktioner AS T WHERE T.TransaktionsGruppe='Tilgodehavender' GROUP BY T.TransaktionsKategori HAVING sum(T.Beloeb)>0;

Hvis der er en, som kan ryste en forklaring ud af ærmet på, hvorfor det virker, kan vi dele pointene i porten :)
Avatar billede proaccess Nybegynder
11. februar 2002 - 07:48 #4
HAVING er en WHERE, men på de data, om er aggregerede... (beregnede pr. gruppe)

Og det virker fordi TransaktionsGruppe IKKE er en beregnet værdi pr. gruppe, men derimod selve gruppen...
Avatar billede it-dyret Nybegynder
11. februar 2002 - 12:06 #5
Jeg takker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester