phpbar.de logo

Mailinglisten-Archive

Aufaddieren eines Feldes

Aufaddieren eines Feldes

Cybot lists at sebastianmendel.de
Don Aug 7 16:05:47 CEST 2003


> ich habe folgende Tabelle:
> 
> auftrag   baugruppe  zeit
> xxxxx     xxxx        1
> xxxxx     xxxx        2
> xxxxx     xxxx        34
> xxxxx     xxxx        45
> 
> durch eine Abfrage möchte ich folgende tabelle erhalten:
> 
> auftrag   baugruppe  teile   gesamtteile
> xxxxx     xxxx        1        1
> xxxxx     xxxx        2        3
> xxxxx     xxxx        34       37
> xxxxx     xxxx        45       82
> 
> ich suche nach der funktion um die letzte spalte zu erzeugen
> meine versuche mit sum führten leider nicht zu dem gewünschten ergebniss.
> 

du willst die letzte spalte tatsächlich so in die datenbank schreiben, 
oder willst es dir nur so ausgeben lassen?

    SELECT *,
           SUM(table_copy.teile) as gesamtteile
      FROM table
LEFT JOIN table AS table_copy
        ON table.[ORDERBYFIELD] <= table_copy.[ORDERBYFIELD]
  GROUP BY [ORDERBYFIELD]
  ORDER BY [ORDERBYFIELD] ASC

bei einer sortierung nach auftrag also so:

    SELECT *,
           SUM(table_copy.teile) as gesamtteile
      FROM table
LEFT JOIN table AS table_copy
        ON table.auftrag <= table_copy.auftrag
  GROUP BY auftrag
  ORDER BY auftrag

alerdings muss das OORDERBYFIELD unique sein für ein korrektes ergebnis
also bruachst du bestimmt ein ORDER BY auftrag,baugruppe, dann siehts 
(etwas komplizierte) so aus:

    SELECT *,
           SUM(table_copy.teile) as gesamtteile
      FROM table
LEFT JOIN table AS table_copy
        ON table.auftrag > table_copy.auftrag
        OR (table.auftrag = table_copy.auftrag
       AND table.baugruppe >= table_copy.baugruppe)
  GROUP BY auftrag, baugruppe
  ORDER BY auftrag, baugruppe


ABER *VORSICHIT* !! kann bei großen tabellen extrem lange dauern!
außerdem hab ichs nicht probiert, kann als sein das noch ein denkfehler 
drin ist, aber grundsätzlich müsste es so in der weiße gehen


-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive