Thomas D.: Berechnung von Summen und updaten einer Spalte

Moin zusammen

ich hab da folgendes vor...

Mit diesem Select Befehl bekam ich die Summe raus die für eine bestimmte Tour bezahlt wurde bzw. den Gesamtverdienst für eine
festgelegte Tour.

SELECT  SUM( Gewicht/1000 * Preis ) AS Preis FROM touren_kunden, touren WHERE touren.Verladewerk=touren_kunden.Verladewerk AND touren.Entladewerk=touren_kunden.Entladewerk

nun möchte ich das die Spalte Erloese in der Tabelle touren anhand einer Lieferscheinsuche

SELECT * FROM touren WHERE Lieferscheinnummer LIKE '$T1'

das Gewicht multipliziert mit dem Preis der für eine bestimmte Tour gezahlt wird.

Tabelle touren_kunde beinhaltet Kunde, Verladewerk, Entladewerk, Preis

Die Spalte Verladewerk und Entladewerk befindet sich auch in der Tabelle touren sodas eine gleichheit zur Berechnung gegeben ist.

Bräuchte da mal Hilfe weil ich da nicht weiter komme.

Grueße Thomas

  1. yo,

    Bräuchte da mal Hilfe weil ich da nicht weiter komme.

    ich verstehe noch nicht so ganz, was genau du suchst, stehe da ein wenig auf den schlauch. vielleicht kannst du es noch mal versuchen, in einfache worte zu fassen, ohne zusätzliche querys mit anzugeben. so bin ich ein wenig verwirrt.

    zum anderen würde ich bei touren einen künstlichen schlüssel angeben, anstelle den primaray key über verladewerk und entladewerk abzubilden.

    Ilja

    1. Hallo Ilja
      Eigentlich ganz einfach.

      Ich gebe in einer Maske die Lieferscheinnummer ein und es soll anhand des Verladewerk und des Entladewerk das Gewicht welches in der Tabelle touren steht multipliziert werden mit dem Wert der in der Tabelle touren_kunden steht.

      Beispiel :

      Tabelle touren -> Verladewerk = a Entladewerk = b Gewicht = 40 Tonnen
      Tabelle touren_kunden steht Kunde -> xyz Veradewerk = a Entladewerk = b Preis für diese Tour 3 Euro

      Also soll das Script bzw. die Abfrage suchen nach der Gleichheit des Veradewerk und Entladewerks in der Tabelle touren_kunden und den festgelegten Preis -> multiplizieren mit dem Gewicht aus Tabelle touren.

      Gruss Thomas

      1. yo,

        bin wieder da, ein wenig erkältet zur zeit.....

        Tabelle touren -> Verladewerk = a Entladewerk = b Gewicht = 40 Tonnen
        Tabelle touren_kunden steht Kunde -> xyz Veradewerk = a Entladewerk = b Preis für diese Tour 3 Euro

        ok verstanden. aber die frage ist immer noch, welches der PK der touren tabelle ist. so wie du das verbunden hast, sind es die spalten verlade und entladewerk. ich würde dann aber lieber einen künstlichen schlüssel einsetzen. hoffe mal, die untere query ist das gesuchte, ansonsten noch mal das tabelenschema angeben mit beispieldatensätzen.

        SELECT  t.Gewicht * tk.Preis AS Multiplikation
        FROM touren_kunden AS t, touren AS tk
        WHERE t.Verladewerk = tk.Verladewerk AND t.Entladewerk=tk.Entladewerk
        AND t.Lieferscheinnummer = '$T1'

        Ilja

        1. Moin Ilja
          Der Herbst kommt mit großen Schritten und die Erkältungswelle rollt an. Gute Besserung.
          Hier mal das Tabellenschema

          CREATE TABLE touren (
            tour\_ID int(11) NOT NULL auto_increment,
            Verladedatum date NOT NULL default '0000-00-00',
            Verladewerk varchar(255) NOT NULL default '',
            Verladebetrieb varchar(255) NOT NULL default '',
            Lieferscheinnummer varchar(255) NOT NULL default '',
            Gewicht varchar(255) NOT NULL default '',
            Entladewerk varchar(255) NOT NULL default '',
            CoilNr varchar(255) NOT NULL default '',
            Abgerechnet varchar(10) NOT NULL default '',
            Kennzeichen varchar(255) NOT NULL default '',
            Sondertour varchar(255) NOT NULL default '',
            news\_datetime datetime NOT NULL default '0000-00-00 00:00:00',
            Tanken varchar(254) NOT NULL default '',
            Reparatur varchar(254) NOT NULL default '',
            Reparaturkosten varchar(254) NOT NULL default '',
            Erloese varchar(254) NOT NULL default '',
            PRIMARY KEY  (tour\_ID)
          )

          CREATE TABLE touren\_kunden (
            kd\_ID int(11) NOT NULL auto_increment,
            Kunde varchar(254) NOT NULL default '',
            Verladewerk varchar(254) NOT NULL default '',
            Entladewerk varchar(254) NOT NULL default '',
            Preis varchar(6) NOT NULL default '',
            PRIMARY KEY  (kd\_ID)
          )

          INSERT INTO touren\_kunden VALUES (4, 'Thomas', 'T20', 'T60 H20', '7');

          INSERT INTO touren VALUES (55, '2004-09-02', 'T20', 'Bdlg2', '25087016', '35080', 'T60 H20', '', 'ja', 'DU-TZ-254', '', '2004-09-06 06:58:48', '', '', '', '');
          INSERT INTO touren VALUES (56, '2004-09-02', 'T20', 'Bdlg2', '25087040', '31260', 'T60 H20', '', 'ja', 'DU-TZ-254', '', '2004-09-06 06:59:51', '', '', '', '');

          Wenn dich deine Query benutze kommt die Fehlermeldung

          #1054 - Unknown column 't.Gewicht' in 'field list'

          wie du sehen kannst liegt der PK auf kd_ID bzw. tour_ID

          Grueße Thomas

          1. ich habs

            SELECT Gewicht * Preis /1000 AS Preis
            FROM touren_kunden AS touren, touren AS touren_kunden
            WHERE touren.Verladewerk = touren_kunden.Verladewerk
            AND touren.Entladewerk = touren_kunden.Entladewerk
            AND Lieferscheinnummer = '22046282'

            1. wie kann ich meine Felder aus den beiden Tabellen mit den restlichen Werten auffüllen lassen wie den Namen des Kunden aus touren_kunden und den anderen Werten aus touren ??

              SELECT touren_kunden.Kunde, touren.Gewicht, Gewicht * Preis /1000 AS Preis
              FROM touren_kunden AS touren, touren AS touren_kunden
              WHERE touren.Verladewerk = touren_kunden.Verladewerk
              AND touren.Entladewerk = touren_kunden.Entladewerk
              AND Lieferscheinnummer = '22046282'

              die obige Syntax funzt so nicht

              1. erledigt.

                SELECT Gewicht * Preis /1000 AS Erloese, tour_ID, Verladedatum, Kunde, Verladebetrieb, Lieferscheinnummer,Gewicht,touren.Entladewerk, Abgerechnet, Kennzeichen, Sondertour
                FROM touren_kunden AS touren, touren AS touren_kunden
                WHERE touren.Verladewerk = touren_kunden.Verladewerk
                AND touren.Entladewerk = touren_kunden.Entladewerk
                AND Lieferscheinnummer = '$T1'