16. marts 2005 - 19:36Der er
7 kommentarer og 1 løsning
Kriterie på beregnet felt i forespørgsel
Jeg har en forespørgsel med en dato (forfalddato) og et beregnet felt (beløb). Problemet er hvis jeg skal have vist de poster som har en forfalddato som er > dagsdato og med et beøb > 0. I kriteriet for forfalddato indtaster jeg >Date() og det virker, men når jeg samtidig under beløb indtaster >0 får jeg ingen resultater selv om der burde være 1.
Jeg fandt ud af det. Uden at være helt sikker, tror jeg det var fordi mit felt "beløb" var en beregnet værdi udfra 4 andre beregnede værdier og min forespørgsel var et udtræk fra 2 tabeller og 3 andre forespørgsler. SQL strengen ser sådan ud: SELECT Ordre.Ordre_id, Ordre.Ordredato, Ordre.Kunde_id, Kunder.Navn, Ordre.Forfalddato, Ordre.Porto, Ordre.Fragt, Ordre.Total_excl_moms, ([Total_excl_moms]+[Fragt])*0.25 AS Moms, [Total_excl_moms]+[Fragt]+[Moms]+[Porto] AS Fakturabeloeb, Kreditnota_qry.Kredit_incl_moms, IIf(IsNull([Kredit_incl_moms]),0,[Kredit_incl_moms]) AS Udtryk1, Ordre_betalt.SumOfBetalt_beloeb, IIf(IsNull([SumOfBetalt_beloeb]),0,[SumOfBetalt_beloeb]) AS Udtryk2, Ordre_gebyrer.SumOfGebyr, IIf(IsNull([SumOfGebyr]),0,[SumOfGebyr]) AS Udtryk3, Sum([Fakturabeloeb]-[Udtryk1]-[Udtryk2]+[Udtryk3]) AS Forfaldent_beloeb FROM Kunder RIGHT JOIN (((Ordre LEFT JOIN Kreditnota_qry ON Ordre.Ordre_id = Kreditnota_qry.Ordre_id) LEFT JOIN Ordre_betalt ON Ordre.Ordre_id = Ordre_betalt.Ordre_id) LEFT JOIN Ordre_gebyrer ON Ordre.Ordre_id = Ordre_gebyrer.Ordre_id) ON Kunder.kunde_id = Ordre.Kunde_id GROUP BY Ordre.Ordre_id, Ordre.Ordredato, Ordre.Kunde_id, Kunder.Navn, Ordre.Forfalddato, Ordre.Porto, Ordre.Fragt, Ordre.Total_excl_moms, Kreditnota_qry.Kredit_incl_moms, Ordre_betalt.SumOfBetalt_beloeb, Ordre_gebyrer.SumOfGebyr HAVING (((Ordre.Forfalddato)<Date()));
Men hvis jeg lavede en ny forespørgsel på baggrund af ovenstående forespørgsel så virker det. Den nye forespørgsel kom til at se sådan ud: SELECT Ordre_forfalden.Ordre_id, Ordre_forfalden.Navn, Ordre_forfalden.Forfalddato, Ordre_forfalden.Fakturabeloeb, Ordre_forfalden.Udtryk1, Ordre_forfalden.Udtryk2, Ordre_forfalden.Udtryk3, Ordre_forfalden.Forfaldent_beloeb FROM Ordre_forfalden GROUP BY Ordre_forfalden.Ordre_id, Ordre_forfalden.Navn, Ordre_forfalden.Forfalddato, Ordre_forfalden.Fakturabeloeb, Ordre_forfalden.Udtryk1, Ordre_forfalden.Udtryk2, Ordre_forfalden.Udtryk3, Ordre_forfalden.Forfaldent_beloeb HAVING (((Ordre_forfalden.Forfaldent_beloeb)>0));
Håber at ikke at det ser alt for mærkeligt ud, men tak for hjælpen alligevel. Hvordan gør jeg med pointne?
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.