Tabelle spaltenweise zusammenfassen

Elmey

Neuer Benutzer
Beiträge
2
Hi,

da ich nur über ein wenig Grundlagenwissen in SQL verfüge, muss ich leider mal eine sicher leicht zu beantwortende Frage stellen (zumidnest für jemanden, der in SQL-Statements geübter ist als ich):

Ich habe eine Tabelle mit den Spalten "Index", "Subindex" und "Zähler". Zu jedem Index gehören bis zu zwei Subindices, die ich jetzt gerne zusammenfassen möchte, d.h. die Zählerstände für Subindex 1 und 2 addieren und in 1 ablegen.

Oder um es an einem Beispeil zu verdeutlichen:

Code:
Index Subindex Zähler
1001  1        12
1001  2        9
1002  1        17
1003  1        5
1003  2        7

soll zusammengefasst werden zu

Code:
Index Subindex Zähler
1001  1        21
1002  1        17
1003  1        12

Das Löschen der dann überflüssigen Datensätze mit Subindex=2 ist kein Problem - aber wie addiere ich die Zählerstände von 1 und 2 in 1 hinein?
 
Werbung:

Charly

Datenbank-Guru
Beiträge
306
Hallo Elmey,

es gibt auch elegantere Wege aber das hier geht auch:

Code:
create table t1 (idx int, Subindex int, Zähler int)
 
insert t1 values (1001,1,12)
insert t1 values (1001,2,9)
insert t1 values (1002,1,17)
insert t1 values (1003,1,5)
insert t1 values (1003,2,7)
 
select * from t1
 
create table t2 (idx int, Subindex int, Zähler int)
 
insert into t2
select idx, 1 as Subindex, sum(zähler) as Zähler from t1
group by idx
 
-- Alle Daten in t1 löschen (erst prüfen ob in t2 die richtigen Daten stehen)
delete from t1
 
-- Die Daten aus t2 in t1 einfügen
insert into t1
select * from t2
 
-- Anzeigen was in t1 steht
select * from t1
 
-- und t2 löschen wenn alles OK ist
drop table t2

Nicht sonderlich einfallsreich aber funktional.

Gruß Charly

PS: mit ms-sql server geschrieben. Sollte aber auch unter mysql laufen
 
Oben