Moin zusammen,
ich oute mich zuerst einmal als "Newbie" im Bereich Datenbanken, da meine ersten Erfahrungen bereits deutlich über 15 Jahre zurück liegen und ich seitdem nur User war.
Ich sitze nun schon seit Stunden und grüble, durchforste das Netz und lese Forenbeiträge, in der Hoffnung den zündenden Funken zu finden, daher mein Eintrag hier. Ich suche nach einem Hinweis, wie ich das machen kann oder wo ich danach suchen soll/kann, denn mit dem "Fach-Chinesisch" tue ich mich noch schwer und habe bestimmt viele nützliche Tipps übersehen weil mir die Schlagwörter fehlten oder ich mit den angegebenen nichts anfangen konnte.
Ich habe vereinfacht dargestellt folgendes vor...
- Datenbank mit Obst und Gemüsesorten (kein Problem soweit)
- Datenbank mit den Zukäufen an Obst und Gemüse, sortiert nach Datum und Kathegorie (Obst bzw. Gemüse), sowie Menge
- Datenbank mit meinen täglichen Verbräuchen
Ich möchte nun wissen, wie man es anstellen kann, dass ich mir zu einem beliebigen Datum anzeigen lassen kann, welche Mengen ich noch in meinem Lagerbestand habe, also wie ich von den diversen Einlagerungen minus den jeweiligen Auslagerungen zum Restbestand kommen kann.
Kann mir da jemand einen Tipp geben wonach ich da am besten suchen soll bzw. wie ich die Datenbank am besten aufbauen sollte.
Vielen Dank schonmal für die hoffentlich zahl- und hilfreichen Antworten.
Gruß Scampi
Grundlagen
Moderator: Moderatoren
Re: Grundlagen
Hallo Scampi,
Du hast ja vermutlich mindestens 3 Tabellen: Zugang, Obst und Abgang ('Obst' heißt natürlich 'Obst_Gemüse' oder ähnlich).
In der Tabelle "Zugang" sind mindestens die Felder "Datum", "Anzahl" und "Obst_ID" (Fremdschlüssel aus der Tabelle "Obst")
Die Tabelle "Abgang" sieht von den Feldern her genauso aus.
liefert alle Zugänge unabhängig von der Obst- oder Gemüsesorte und unabhängig vom Datum.
liefert alle Zugänge unabhängig von der Obst- oder Gemüsesorte bis zum 1.4.2014 Datum.
liefert alle Zugänge, die in der Tabelle "Obst" unter der ID '1' (Primärschlüssel in der Tabelle "Obst") verzeichnet sind, bis zum 1.4.2014 Datum.
fragt bei der Abfrage nach einer Datumsangabe.
Und jetzt "Zugang" und "Obst":
Die Summe wird genau für das Obst abgefragt, das in der äußeren Abfrage steht. Dies wird durch die Zuweisung eines "a" zu der Tabellenbezeichnung der Tabelle der äußeren Abfrage erreicht. Der Text für den Abgang ist identisch mit dem des Zuganges - bis auf die betroffene Tabelle. Komplett mit Saldo sieht das dann so aus:
Gruß
Robert
Du hast ja vermutlich mindestens 3 Tabellen: Zugang, Obst und Abgang ('Obst' heißt natürlich 'Obst_Gemüse' oder ähnlich).
In der Tabelle "Zugang" sind mindestens die Felder "Datum", "Anzahl" und "Obst_ID" (Fremdschlüssel aus der Tabelle "Obst")
Die Tabelle "Abgang" sieht von den Feldern her genauso aus.
Code: Alles auswählen
SELECT SUM("Anzahl") FROM "Zugang"
Code: Alles auswählen
SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < '2014-04-01'
Code: Alles auswählen
SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < '2014-04-01' AND "Obst_ID" = 1
Code: Alles auswählen
SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < :Datum AND "Obst_ID" = 1
Und jetzt "Zugang" und "Obst":
Code: Alles auswählen
SELECT "ID", "Obst", (SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < :Datum AND "Obst_ID" = "a"."ID") AS "Zugang" FROM "Obst" AS "a"
Code: Alles auswählen
SELECT "ID", "Obst", (SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < :Datum AND "Obst_ID" = "a"."ID") AS "Zugang" , (SELECT SUM("Anzahl") FROM "Abgang" WHERE "Datum" < :Datum AND "Obst_ID" = "a"."ID") AS "Abgang", (SELECT SUM("Anzahl") FROM "Zugang" WHERE "Datum" < :Datum AND "Obst_ID" = "a"."ID") - (SELECT SUM("Anzahl") FROM "Abgang" WHERE "Datum" < :Datum AND "Obst_ID" = "a"."ID") AS "Saldo" FROM "Obst" AS "a"
Robert