09. februar 2002 - 00:44Der 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...
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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;
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?
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 :)
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.