Toon posts:

[Access] Voorraad checken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een klein systeempje in Access gemaakt. Ik heb de volgende vijf tabellen:
- klant
- verkoop
- artikel
- inkoop
- leverancier

In inkoop staat voor iedere keer dat er een artikel ingekocht wordt een entry met de leverancierscode, artikelcode, datum en aantal.
In verkoop staat voor iedere keer dat er een artikel verkcoht wordt een entry met de klantcode, artikelcode, datum en aantal.

Nu moet er een overzicht van alle artikelen in het systeem gegeven worden met daarbij het aantal artikelen in voorraad. Dus het SUM(inkoop.aantal van artikel X) - SUM(verkoop.aantal van artikel X). Ik krijg het alleen niet voor elkaar.

Ik heb nu:

SELECT First(artikel.naam) AS Artikel, (SELECT SUM(aantal)
FROM inkoop
WHERE artikelID = [Voer het artikelID in:])-(SELECT SUM(aantal)
FROM verkoop
WHERE artikelID = [voer het artikelID in:]) AS In_Voorraad
FROM (artikel INNER JOIN inkoop ON artikel.artikelID=inkoop.artikelID) INNER JOIN verkoop ON artikel.artikelID=verkoop.artikelID
WHERE artikel.artikelID=[Voer het artikelID in:];


Nu kan het alleen door een artikelID in te voeren, het moet gewoon te genereren zijn voor alle artikelen in het systeem.

Verwijderd

Ik vermoed dat dat komt vanwege FIRST achter select
of vanwege het feit dat je een parameterquery hebt nl [voer het artikelid in:]

  • guyvdn
  • Registratie: Maart 2003
  • Laatst online: 18-06 20:15

guyvdn

Eagle

Je moest gewoon totalen opzetten in de query builder en groupen op artikel ID. Dan krijg je het volgende:

code:
1
2
3
4
SELECT Artikel.ArtikelID, Artikel.Omschrijving, Sum(Inkoop.aantal) - Sum(Verkoop.Aantal) AS Voorraad
FROM (Artikel LEFT JOIN Inkoop ON Artikel.ArtikelID = Inkoop.artikelID) 
LEFT JOIN Verkoop ON Artikel.ArtikelID = Verkoop.ArtikelID
GROUP BY Artikel.ArtikelID, Artikel.Omschrijving;

To deny our own impulses is to deny the very thing that makes us human