Avatar billede klk Nybegynder
04. februar 2008 - 11:10 Der er 9 kommentarer og
1 løsning

Foreningsmængden mellem to tabellers indhold

Et simplificeret og tænkt eksempel:

Forestil dig at jeg har en produktionsvirksomhed, og at jeg er snedker.

Jeg modtager ordrer med tilhørende ordrelinier.

Jeg kan sælge en dør eller et vindue.

Til en dør skal jeg bruge træ, glas, aluskinner og søm

Til et vindue skal jeg bruge træ, glas og søm.

Jeg har 2 ordrer:
Ordre/produkt 1: 1 dør
Ordrelinie1a/stykliste1a: 5 m træ
Ordrelinie1b/stykliste1b: 6 ruder
Ordrelinie1c/stykliste1c: 1 aluskinne
Ordrelinie1d/stykliste1d: 1 kasse søm

Ordre 1: 2 vindue
Ordrelinie2a/stykliste2a: 2 m træ
Ordrelinie2b/stykliste2b: 2 ruder
Ordrelinie2d/stykliste2c: 1 kasse søm

Jeg har en tabel til ordrer og en tabel til ordrelinier. Desuden har jeg en tabel til lagerbeholdning med et Ja/nej felt der viser om varen er på lager eller ej

Jeg har alt på lager på nær aluskinner.

Nu vil jeg lave en forespørgsel der KUN viser mig ordrer som jeg kan producere. Altså skal den vise Vindue men ikke dør.
Avatar billede klk Nybegynder
04. februar 2008 - 11:11 #1
Hov der skulle stå Ordre/produkt 2: 1 vindue
Avatar billede klk Nybegynder
04. februar 2008 - 15:27 #2
Måske:

Hvor mange varer indgår der i produkt 1:
Svaret er 4

Hvor mange af varerne har lagerbeholdning = Ja:
Svaret er 3

Hvor mange varer indgår der i produkt 2:
Svaret er 3

Hvor mange varer har lagerbeholdning = Ja:
Svaret er 3

Hvis antal nødvendige varer = antal forekomster med lagerbeholdning Ja
Så vis produkt.

3=3. Altså vis resultatet vindue.

???
Avatar billede klk Nybegynder
04. februar 2008 - 16:04 #3
Nu kan jeg tælle varer i produkter i den første forespørgsel:
Produkt1;4
Produkt2;3

Men jeg kan ikke tælle forekomster af lagerstatus. Jeg har en tabel kaldet Varelager, med et Ja/Nej felt, som beskriver om varen er på lager eller ej.

Når jeg i forespørgsels gitteret vælger at vise totaler og sætter:
Total: Antal
Så vises der stadig en checkbox som resultat.

Det hjælper heller ikke at skrive:
Udtryk2: IIf([Lagerstatus];1;0)
Eller
Udtryk2: IIf([Lagerstatus];"A";"B")
Avatar billede terry Ekspert
04. februar 2008 - 16:18 #4
should you also look at th enumber you have in stock not just if it si stock?
Avatar billede klk Nybegynder
04. februar 2008 - 18:25 #5
Now the number (pcs or meters) is not important.
Avatar billede klk Nybegynder
05. februar 2008 - 15:08 #6
Jeg har løst problemet med at finde antal på lager. Jeg havde glemt at jeg både skulle have VareNummer i 1 kolonne og Lagerstatus = sand i den næste kollonne fra Tbl_Vare og så dernæst tage antallet af forekomster i den sidste kolonne ("forespørgselsgitter").
Avatar billede klk Nybegynder
05. februar 2008 - 15:50 #7
Jeg har også løst det oprindelige problem ved at dele opgaven i to og bruge "nestede forespørgsler".

Først laver man en forespørgsel der finder antal varer (AntalVarer) pr. produkt, der medgår til et produkt.

Dernæst en forespørgsel der finder antallet af varer på lager (VarerPaaLager) pr. produkt.

Den sidste forespørgsel indeholder de 2 første forespørgsler, hvor ProduktNavn og ProduktId er relateret til hinanden. I første kolonne lægges ProduktNavn ind og i den næste kolonne lægges AntalVarer i "Felt:" og i "Kriterie:" indsættes VarerPaaLager. Nu viser forespørgslen kun vindue fordi AntalVarer=VarerPaaLager som svarer til 3=3.

Hvis jeg viser denne i SQL-visning ser det således ud:
SELECT Foresp_AntalVarer.ProduktNavn, Foresp_AntalVarer.AntalVarer
FROM Foresp_AntalVarer INNER JOIN Foresp_VarerPaaLager ON (Foresp_AntalVarer.ProduktNavn = Foresp_VarerPaaLager.ProduktNavn) AND (Foresp_AntalVarer.ProduktId = Foresp_VarerPaaLager.ProduktId)
WHERE (((Foresp_AntalVarer.AntalVarer)=[VarerPaaLager]));
Avatar billede klk Nybegynder
05. februar 2008 - 15:53 #8
Læg nu lige et svar alligevel Terry. Jeg er ikke vild med det der trækken point tilbage - jeg har også fået stor hjælp med noget SQL omkring jul.
Avatar billede terry Ekspert
05. februar 2008 - 16:02 #9
Well I havent helped much at all here and you did find your own solution, but I'll leave it up to you.
Avatar billede terry Ekspert
07. februar 2008 - 11:59 #10
thanks
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester