Update über 2 Tabellen

karlandi

New Member
Hallo,

ich habe zwei Tabellen mit jeweils u.a. folgenden Spalten:
Datum, Filiale, Artikelnummer, EAN, Menge und Preis.

Die 2 Tabellen sollten zu einer zusammengefasst und die Wert aufaddiert werden, so dass pro Datum, Filiale, Artikelnummer und EAN nur ein Datensatz vorhanden ist (da PK).

Wie kann ich das am besten bewältigen? Habe hier mal einen Ansatz, bin mir aber nicht sicher, ob der stimmt:

UPDATE a
set a.vkmenge = a.vkmenge+t.vkmenge,
a.umsatz = a.umsatz+t.umsatz,
a.rabatt = a.rabatt+t.rabatt,
a.vkmenge2 = a.vkmenge2+t.vkmenge2,
a.umsatz2 = a.umsatz2+t.umsatz2,
a.rabatt2 = a.rabatt2+t.rabatt2
from aumsatz_nl4 a inner join taumsatz_nl4 t
on a.artikelnummer = t.artikelnummer
where a.datum = t.datum

vor allem, weil bei der "Gegenprobe" weniger Datensätze gelöscht werden:

DELETE FROM taumsatz_nl4
FROM taumsatz_nl4 As t INNER JOIN aumsatz_nl4 As a
On t.artikelnummer = a.artikelnummer
WHERE t.datum=a.datum

Wie mache ich es richtig?

Danke schon mal.

Gruß
Andreas
 
Es handelt sich um MS SQL Server 2000.

Es braucht keine dauerhaft Einrichtung sein. Ich brauche nur einmal ein Update, also eine Aufsummerung, weil was falsch gelaufen ist.
 
Der MS-SQL kann aber den Update über eine View. Kannst Du alles im Manager erledigen.

huschi.
 
habe den Fehler gefunden. Da die Artikelnummer (komischerweise) mehrfach, mit unterschiedlichen EAN vorkommen kann, muss die EAN auch noch mit in den Join:

UPDATE a
set a.vkmenge = a.vkmenge+t.vkmenge,
a.umsatz = a.umsatz+t.umsatz,
a.rabatt = a.rabatt+t.rabatt,
a.vkmenge2 = a.vkmenge2+t.vkmenge2,
a.umsatz2 = a.umsatz2+t.umsatz2,
a.rabatt2 = a.rabatt2+t.rabatt2
from aumsatz_nl4 a inner join taumsatz_nl4 t
on a.artikelnummer = t.artikelnummer
and a.ean = t.ean
where a.datum = t.datum

So passt dann meine Abfrage :-)
 
Back
Top