On Sun, 20 May 2001 23:06:44 +0200, Phreak <phreak@mail1.stofanet.dk> wrote:
>Jeg har et problem med at få udtrukket de rigtige data fra en access
>database.
>
>Databasen er opbygget således:
>
>Ingredienser - tabel med følgende felter:
>ID (tal - nøgle), Navn (tekst), Enhed (tekst)
>
>Indgår - tabel med følgende felter:
>ID (tal - nøgle), Opskrift (nr), Ingrediens (nr - referer til ID i
>Ingredienser), Mængde (tal)
>
>Bestillinger - tabel med følgende felter:
>ID (tal - nøgle), Bruger (tal), MorgenMenu (tal - referer til Opskrift
>i Indgår), FrokostMenu (tal - referer til Opskrift i Indgår),
>MiddagMenu (tal - referer til Opskrift i Indgår), Dato (dato)
>
>
>Det jeg gerne vil kunne udtrække, er så en fuldstændig ingrediensliste
>med Navn, Mængde og Enhed på ingredienser for en bestemt dato.
>Men jeg kan ikke få den til at tælle rigtigt op, når der er flere
>brugere der har bestilt samme ret samme dag.
Problemet er nok, at få forbundet alle tre måltider fra Bestillinger til Indgår.
Hvis du er sikker på, at folk ikke skal have det samme til to måltider, vil
noget i retning af dette nok kunne bringes til at virke:
SELECT Navn, Sum(Mængde), Enhed
FROM Bestillinger, (Indgår INNER JOIN Ingredienser ON Indgår.Ingrediens =
Ingredienser.ID)
WHERE (Bestillinger.MorgenMenu = Indgår.Opskrift OR
Bestillinger.Frokostmenu = Indgår.Opskrift OR
Bestillinger.MiddagMenu = Indgår.Opskrift)
And Bestillinger.Dato = #11/31/2000#
(ikke afprøvet)
Hvis dette ikke er godt nok, bliver du nok nødt til at lave en UNION, a la
SELECT ID, Bruger, MorgenMenu as Menu, Dato FROM Bestillinger
UNION SELECT ID, Bruger, FrokostMenu as Menu, Dato FROM Bestillinger
UNION SELECT ID, Bruger, MiddagsMenu as Menu, Dato FROM Bestillinger
og så joine den med Indgår-tabellen
(heller ikke testet)
--
Med venlige hilsner
Nis Jørgensen, Albertslund
Actual code behavior may differ from intended.
|