Programma:
Access database gekoppeld aan een Delphi Applicatie.
Bedoeling van het systeem:
producten kunnen invoeren en uitvoeren.
Bijhouden Welke leverancier wanneer welke producten levert en hoeveel.
Bijhouden Welke werknemer wanneer welke leveringen invoert.
Bijhouden wanneer, hoeveel van welk product, aan welke klant wordt geleverd.
Weergeven van de huidige voorraad.
Screenshot van de data structuur:
http://img82.imageshack.us/img82/5026/ibseg5.jpg
Probleem:
Weergeven van de huidige voorraad:
Ik heb de volgende query geschreven om de voorraad weer te geven:
SELECT ip.productNr, p.Omschrijving, sc.Omschrijving, OpslagPlek, (ip.Aantal - up.Aantal) AS Aantal, SerieNr
FROM Ingevoerd_Product AS ip, Uitgevoerd_Product AS up, Product AS p, Sub_Categorie AS sc
WHERE ip.ProductNr = up.ProductNr
AND ip.ProductNr = p.productNr
AND (ip.Aantal - up.Aantal) > 0
AND p.SubcategorieNr = sc.subcategorieNr;
Dit werkt dus niet helemaal zoals ik wil. Want:
- Wanneer er producten zijn geleverd (dus er zijn producten in "Ingevoerd_Product") maar nog geen producten zijn uitgeleverd ("Uitgevoerd_Product"). Laat ie dat niet zien.
- Wanneer bijv. bij een levering van maandag 10 toetsenborden binnenkomen en bij levering van woensdag weer 5 dezelfde toetsenborden binnenkomen, worden die apart weergegeven (dit komt omdat leveringNr + ProductNr de primairy key is.
Probleem 1: hoe kan ik in SQL aangeven dat ie alleen IP.Aantal - UP.Aantal moet doen wanneer er ook producten van dat productNr zijn uitgevoerd.
Probleem 2: hoe kan ik dezelfde producten met een verschillend leveringNr samenvoegen?
Moet ik alleen mijn query aanpassen? of is er iets mis met de datastructuur die ik heb ontworpen?
Access database gekoppeld aan een Delphi Applicatie.
Bedoeling van het systeem:
producten kunnen invoeren en uitvoeren.
Bijhouden Welke leverancier wanneer welke producten levert en hoeveel.
Bijhouden Welke werknemer wanneer welke leveringen invoert.
Bijhouden wanneer, hoeveel van welk product, aan welke klant wordt geleverd.
Weergeven van de huidige voorraad.
Screenshot van de data structuur:
http://img82.imageshack.us/img82/5026/ibseg5.jpg
Probleem:
Weergeven van de huidige voorraad:
Ik heb de volgende query geschreven om de voorraad weer te geven:
SELECT ip.productNr, p.Omschrijving, sc.Omschrijving, OpslagPlek, (ip.Aantal - up.Aantal) AS Aantal, SerieNr
FROM Ingevoerd_Product AS ip, Uitgevoerd_Product AS up, Product AS p, Sub_Categorie AS sc
WHERE ip.ProductNr = up.ProductNr
AND ip.ProductNr = p.productNr
AND (ip.Aantal - up.Aantal) > 0
AND p.SubcategorieNr = sc.subcategorieNr;
Dit werkt dus niet helemaal zoals ik wil. Want:
- Wanneer er producten zijn geleverd (dus er zijn producten in "Ingevoerd_Product") maar nog geen producten zijn uitgeleverd ("Uitgevoerd_Product"). Laat ie dat niet zien.
- Wanneer bijv. bij een levering van maandag 10 toetsenborden binnenkomen en bij levering van woensdag weer 5 dezelfde toetsenborden binnenkomen, worden die apart weergegeven (dit komt omdat leveringNr + ProductNr de primairy key is.
Probleem 1: hoe kan ik in SQL aangeven dat ie alleen IP.Aantal - UP.Aantal moet doen wanneer er ook producten van dat productNr zijn uitgevoerd.
Probleem 2: hoe kan ik dezelfde producten met een verschillend leveringNr samenvoegen?
Moet ik alleen mijn query aanpassen? of is er iets mis met de datastructuur die ik heb ontworpen?
[ Voor 5% gewijzigd door Frenkpie op 19-07-2006 11:39 ]