[SQL / Access] Totaalbedrag per factuur berekenen

Pagina: 1
Acties:
  • 447 views sinds 30-01-2008
  • Reageer

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 21-04 16:00
Ik heb de volgende tabellen

Facturen

factuurId
klantId
factuurdatum


FactuurRegels

regelId
factuurId
productId
aantal

Producten

artikelId
code
omschrijving
prijs


Dit alles wordt netjes weer gegegeven in een formuliertje.

Maar nu wil het totaalbedrag van de factuur berekenen.
Dat doe ik met de volgende query
code:
1
2
3
4
SELECT  Sum(producten.prijs*producten.aantal) AS bedrag
FROM producten INNER JOIN factuurregels ON producten.artikelId=factuurregels.artikelId
WHERE (((factuurregels.factuurId)=FORM!factuurId))
GROUP BY facturen.factuurId;

De bedoeling is dat ik 1 resultaat krijg met daar in het totaal van alle factuurregels (aantal*prijs)
Dit resultaat geef ik weer in het fomrulier, het veld krijgt nu de waarden #Naam?. Als ik de query los it voer wordt gevraag om producten.Count()

Nu heb ik al de query al versillende malen herschreven en diverse fora bezocht maar ik kom er nog niet echt uit.

Enig idee hoe ik dit voorelkaar kan krijgen?

  • Database freak
  • Registratie: Oktober 1999
  • Laatst online: 21-01 12:56
Het aantal zit niet in de product tabel maar in de factuur regels tabel:

SELECT Producten.ArtikelId, Sum(producten.prijs*factuurregels.aantal) AS bedrag
FROM producten INNER JOIN factuurregels ON producten.artikelId=factuurregels.artikelId
WHERE (((factuurregels.factuurId)=FORM!factuurId))
GROUP BY Producten.ArtikelId ;

mischien is dit zelfs beter

SELECT producten.prijs * Sum(factuurregels.aantal) AS bedrag

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 21-04 16:00
De query werkt nu zoals het hoort :)
Het totaal wordt netjes berekent.

  • Database freak
  • Registratie: Oktober 1999
  • Laatst online: 21-01 12:56
Okidoki, Access en Excel hebben vaak niet relevante foutmeldingen; voor een gebruikersvriendelijk pakket zou MS daar wel eens wat aan mogen doen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 18:11

Boss

+1 Overgewaardeerd

Als je alleen het totaal wilt weergeven op een (sub)formulier zou ik een =Sum(Veldnaam) in de voettekst van dat formulier zetten, dat werkt een stuk makkelijker.

En een ander inkoppertje: wat doe je als je achteraf de prijzen van een product aanpast? Dan zijn al je oude facturen opeens ook veranderd -> artikelprijs overnemen in factuurtabel!

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
offtopic: hou je in je applicatie wel rekening mee dat prijzen kunnen veranderen?

Als productid 10 vandaag 100 euro kost en morgen 120 dat de factuur in 1 keer duurder is geworden.

Kortom het is verstandig om of prijshistorie bij te houden (complex) dan wel een extra veld toe te voegen.

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 18:48

Dido

heforshe

Met hierboven :)

Een veld in je factuurregel tabel met regelbedrag is aan te raden (dat vul je op het moment dat de factuur wordt aangemaakt.)

Wat betekent mijn avatar?

Pagina: 1