Berechnung von Summen und updaten einer Spalte
Thomas D.
- datenbank
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
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
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
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
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
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'
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
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'