Und dann die Spalte wieder entfernen
Im Grunde genommen läuft es darauf hinaus, pro Artikel nur eine Zeile zu behalten und den Rest zu nullen.
In T-
SQL (MS-
SQL) würde das so gehen (Überarbeitung der Artikel-Tabelle anhand einer Arbeitsgrundlage). Ob das so in
MySQL geht, weiß ich nicht.
Desweiteren müsste man noch klären, was passiert, wenn der Rückstand > Artikel ist.
Code:
update T_Artikel
set Anzahl = case when x.RefID=Archiv_ID then x.Anzahl - x.Rückstand else 0 end,
Rückstand = 0
from (
select Artikel_ID,
max(Archiv_ID) as RefID,
sum(Anzahl) as Anzahl,
Sum(Rückstand) as Rückstand
from T_Artikel
group by Artikel_ID
) x