Hans A. Plast: mysql Summenfunktion aus Kreuzprodukt möglich?

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

  1. 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

  2. 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

    1. 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

      1. 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

        1. 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