Ahoi,
ich stelle hier für meinen Vater eine Frage, also bitte nicht lynchen, wenn ich nicht zuerst die Suche betätigt habe. Ich weiß schlicht und ergreifend nicht, wonach ich suchen müsste - habe mit Datenbanken nichts am Hut und mit OO auch nicht. Wäre nett, wenn ihr mir bzw. ihm trotzdem helfen könnten.
Also folgende Aufgabenstellung: Mein Vater will sich eine Tabelle aufbauen, in der er Cocktails samt deren entsprechende Zutaten listet. Dazu kommt eine zweite Tabelle, in der die Zutaten nochmals gelistet sind und mit einer Checkbox aktiviert werden, wenn sie vorrätig sind. Diese beiden Tabellen müssen nun miteinander verglichen werden um im Endeffekt eine Liste der möglichen Cocktails mit dem vorrätigen Material zu bekommen.
Das Problem: Mein Vater weiß zwar, wie man eine Abfrage einer einzelnen Datei macht, nicht aber von allen Zutaten. So zumindest hab ich das jetzt verstanden.
Also: Zwei Tabellen. Tabelle eins mit den Cocktails, unter anderem mit dem Feld "Zutaten". Tabelle zwei mit dem Feld "Vorhanden". Die Einträge im Feld "Vorhanden" werden via Checkbox aktiviert, wenn sie... vorhanden sind. Nun soll das Feld "Vorhanden" aus Tabelle zwei mit dem Feld "Zutaten" aus Tabelle eins verglichen werden und die entsprechenden Cocktails in seinem Formular gezeigt werden. Die Tabellen und Formulare hat er erstellt, nur wie die Abfrage erstellt wird, weiß er nicht, bzw. findet keine entsprechende Anleitung.
Hat das jemand verstanden? Weiß jemand, wo es die entsprechende Anleitung gibt oder kann Tipps geben?
Thx/inajock
Abfrage erstellen
Moderator: Moderatoren
Re: Abfrage erstellen
Hallo inajock,
du schreibst von einer Tabelle, "in der er Cocktails samt deren entsprechende Zutaten" gelistet werden. In welcher Form? Sind die Zutaten in separaten Zeilen aufgeführt, d.h.
[Spalte1] [Spalte2]
Cocktail A Zutat1
Cocktail A Zutat2
Cocktail A Zutat3
Cocktail B Zutat1
Cocktail B Zutat2
...
oder etwa in einer Zeile
[Spalte1] [Spalte2] [Spalte3] [Spalte4]
Cocktail A Zutat1 Zutat2 Zutat3
Cocktail B Zutat1 Zutat2
Sollte ersteres zutreffen, dann funktioniert es auf folgende Art:
Beispieltabellen "Tab_Cocktail" mit den Spalten "Cocktail", "Zutat" und "Tab_Zutat" mit den Spalten "Zutat", "vorhanden"
Die Bezeichnungen musst Du entsprechend anpassen
Ergebnis sind alle Cocktails, für die alle Zutaten vorhanden sind.
Gruß Barlee
du schreibst von einer Tabelle, "in der er Cocktails samt deren entsprechende Zutaten" gelistet werden. In welcher Form? Sind die Zutaten in separaten Zeilen aufgeführt, d.h.
[Spalte1] [Spalte2]
Cocktail A Zutat1
Cocktail A Zutat2
Cocktail A Zutat3
Cocktail B Zutat1
Cocktail B Zutat2
...
oder etwa in einer Zeile
[Spalte1] [Spalte2] [Spalte3] [Spalte4]
Cocktail A Zutat1 Zutat2 Zutat3
Cocktail B Zutat1 Zutat2
Sollte ersteres zutreffen, dann funktioniert es auf folgende Art:
Beispieltabellen "Tab_Cocktail" mit den Spalten "Cocktail", "Zutat" und "Tab_Zutat" mit den Spalten "Zutat", "vorhanden"
Die Bezeichnungen musst Du entsprechend anpassen
Code: Alles auswählen
SELECT DISTINCT "Tab_A"."Cocktail"
FROM
(
SELECT "a"."Cocktail", "a"."Zutat", "b"."vorhanden"
FROM "Tab_Cocktail" "a", "Tab_Zutat" "b"
WHERE "a"."Zutat" = "b"."Zutat"
) "Tab_A",
(
SELECT "a"."Cocktail", COUNT("a"."Zutat") AS "Zutaten_notw"
FROM "Tab_Cocktail" "a"
GROUP BY "a"."Cocktail"
) "Tab_B",
(
SELECT "a"."Cocktail", COUNT("b"."vorhanden") AS "Zutaten_vorh"
FROM "Tab_Cocktail" "a", "Tab_Zutat" "b"
WHERE "a"."Zutat" = "b"."Zutat"
AND "b"."vorhanden" = TRUE
GROUP BY "Cocktail"
) "Tab_C"
WHERE "Tab_A"."Cocktail" = "Tab_B"."Cocktail"
AND "Tab_A"."Cocktail" = "Tab_C"."Cocktail"
AND "Tab_B"."Zutaten_notw" = "Tab_C"."Zutaten_vorh"
Gruß Barlee