Summe aus einer Tabelle in eine andere schreiben

Hallo, ich hoffe ihr könnt mir helfen. Ich bin SQL Noob und habe folgendes problem:

Ich habe eine Tabelle ArtikelKauf mit den Spalten
-id
-IdArtikel
-idkäufer
-faktor
und viele andere Spalten die aber jetzt nicht zur sache tun. dort stehen zu jedem artikel wer wann wieviel eines artikels ge/verkauft hat.

nun möchte ich in eine weitere Tabelle schreiben, wieviel von einem Artikel jeder Käufer besitzt.
die neue Tabelle (besitzer) soll so aussehen:
-id (unique)
-idartikel (Aus Quelle)
-idbesitzer (aus Quelle)
-faktor (summe aus allen einkäufen - alle verkäufe (id 1 bzw 2)

Diese Funktion müsste jetzt die kauftabelle durchforsten und zu jedem artikel schauen wieviele davon gegauft/verkauft wurden und die summe daraus im Feld Faktor eintragen, dazu natürlich noch IdArtikel und IdBesitzer.
es gibt nur ca 6 Besitzer und ca 5000 Artikel, daher wird die Tabelle dann auch nicht sooooo gross…
Kann mir da jemand eine Formel vorschlagen wie ich das realisieren könnte?
Danke vielmals
LG
Holgi

Hallo Holgi,

ich kann nicht ganz nachvollziehen, woher das Attribut Besitzer gefüllt werden soll (eventuell aus dem Käufer)!?
Aber die Abfrage sollte ein einfaches

select attribut1, ...,attributn, 
 sum(faktor) 
 from Artikelkauf 
 group by attribut1, ...,attributn

sein. Wenn es in eine Tabelle soll schreibst Du ein INSERT INTO … davor. Oder Du erzeugst die Tabelle direkt mit CREATE TABLE AS …

MfG Georg V.

Hallo Georg,
der ansatz mit create Table ist schon richtig da ich zur sicherheit das table erst löschen will.
das habe ich vor: Quell Tabelle:
id: Art: id käufer: Faktor:
1 22 1 5
2 25 3 2
3 11 6 4
4 22 1 1
5 25 6 3
6 22 1 7
Ziel:
1 11 6 4
2 22 1 13
3 25 3 2
4 25 6 3

Ich hatte bisher eher an den Befehl:
Select a,b,sum© into test from einkäufe
gedacht aber das funktioniert irgendwie nicht…

Hallo Holgi,

das funktioniert mit zwei kleinen Änderungen, die ich schon in der letzten Antwort angedeutet habe:
a) eine Aggregations-Funktion wie Summe benötigt immer ein GROUP BY, damit es weiss, über was er die Summe zu bilden hat (einzige Ausnahme: Du willst nur eine Summe haben).
b) Dein „select … into …“ lautet im Standard INSERT INTO … SELECT …

MfG Georg V.