mysql Summenfunktion aus Kreuzprodukt möglich?
Hans A. Plast
- datenbank
Hallo,
Ist es möglich, in mysql5 aus 2 Tabellen jeweils 2 Werte, die einen gemeinsamen Key in Tabelle 3 haben, miteinander zu multiplizieren und die Summe daraus zu bilden?
Ich hoffe, ich habe das richtig formuliert. Deshalb nochmal als beispiel:
Tabelle 1 enthält die Anzahl.
Tabelle 2 enthält den Preis
Kann ich eine Abfrage durchführen, die folgende Ergebnissmenge fordert:
Gibt mir den kummulierten Wert aus Anzahl*Preis aller Artikel, die als Jahr in Tabelle 3 den Wert 2008 haben.
Primary Key ist die Id (in allen 3 Tabellen)
Grüße, Hans
Tach,
Ist es möglich, in mysql5 aus 2 Tabellen jeweils 2 Werte, die einen gemeinsamen Key in Tabelle 3 haben, miteinander zu multiplizieren und die Summe daraus zu bilden?
ja. Fange an, indem du eine Abfrage erzeugst, die dir alle Datensätze liefert aus Tabelle 1 und 2 liefert, die du brauchst und dann hänge den Rest ein, also Tabelle 3, die Bedingungen, die Multiplikation, die Gruppierung etc.
mfg
Woodfighter
Hallo,
Kann ich eine Abfrage durchführen, die folgende Ergebnissmenge fordert:
Gibt mir den kummulierten Wert aus Anzahl*Preis aller Artikel, die als Jahr in Tabelle 3 den Wert 2008 haben.
Ja, warum nicht, du müsstest eben genau dies in gültiges SQL übersetzen. SUM() erwartet als Argument eine Expression, sprich einen anderen gültigen SQL-Ausdruck, das kann z.b. auch eine Formel/Multiplikation sein.
die als Jahr in Tabelle 3 den Wert 2008 haben.
WHERE tabelle3.Jahr = 2008
Wie sehen deine Versuche bisher aus?`
Gruss, Frank
Wie sehen deine Versuche bisher aus?`
Hallo Frank,
die gibt es noch nicht, weil ich gar nicht wußte, ob das möglich ist.
Ja, warum nicht, du müsstest eben genau dies in gültiges SQL übersetzen. SUM() erwartet als Argument eine Expression, sprich einen anderen gültigen SQL-Ausdruck, das kann z.b. auch eine Formel/Multiplikation sein.
Genau _das_ wollte ich wissen. Heißt das denn übersetzt, es darf auch so etwas, wie sum(t.spalte1*x.spalte2) herein??
Bis hierher erstmal danke
HANS
Wie sehen deine Versuche bisher aus?`
die gibt es noch nicht, weil ich gar nicht wußte, ob das möglich ist.
Probieren geht über Studieren, oder nicht, deine umgangssprachlich formulierte "Ab"Frage enthält nichts, was der Sprache SQL auf Anhieb fremd sein sollte.
Deine Definition von "Kreuzprodukt" könntest du ggf mal präzisieren. Und evt. auch mal die Tabellendefinitionen genauer aufzeigen.
Genau _das_ wollte ich wissen. Heißt das denn übersetzt, es darf auch so etwas, wie sum(t.spalte1*x.spalte2) herein??
Wie gesagt/geschrieben, SUM() erwartet als argument eine Expression ... man konsultiere am besten die MySQL Dokumentation, was "Expression" bedeutet. In den User-Kommentaren finden sich meistens auch Hinweise auf mögliche Einsatzmöglichkeiten ....
also Doku lesen und ausprobieren ...
Bis hierher erstmal danke
Na, das ist ja schön!
Ciao, Frank
also Doku lesen und ausprobieren ...
Bis hierher erstmal danke
Na, das ist ja schön!
Ciao, Frank
Hallo Frank,
Ich habe Beides gemacht und es funktioniert prächtig.
Danke für Deine Hilfe.
Ciao, Hans