PDA

View Full Version : SQL mit Gruppenwechsel



peter.kinne
24-04-08, 06:57
Hallo zusammen,

bekomme ich so etwas mit SQL hin. Ich habe eine Eingabetabelle auf Detailebene und muss einen Gruppensatz in eine andere Datei ausgeben mit Werten von und bis . Hier die Tabellen:

Inputtabelle

PLZ KZ_1 KZ_2 KZ_3
------ -------- ------- --------
01050 1 2 2
01051 1 2 2
01052 2 2 3
01090 2 2 1

Die Ausgabe soll so ausehen

PLZ_von PLZ_bis KZ Wert
01050 01051 KZ_1 1
01052 01090 KZ_1 2
01050 01090 KZ_2 2
01050 01051 KZ_3 2
01052 01052 KZ_3 3
01090 01090 KZ_3 1

Vielen Dank im voraus,

Peter

Fuerchau
24-04-08, 07:51
Genereller Aufbau:

Insert into MyDest
select ... from MySource
where ...
group by ....

Das Problem ist nur noch die Bereichszusammenfassung:

case
when plz between 01050 and 01051 then '01050 01051'
when plz between 01052 and 01090 then '01052 01090'
when ....
else ...
end

Im Group by ist allerdings der Case-Ausdruck zu wiederholen.

Man kann auch folgendes gestalten:

insert into MyDest
with
xMyFile as (
select ...
case ... as Plz_Von_Bis
...
from Myfile
where
)
select .... from xMyFile
group by ..., Plz_Von_Bis, ...

peter.kinne
24-04-08, 07:58
Recht herzlichen Dank.

Ich werde es gleich mal probieren.

Gruß

Peter:eek:

Pikachu
24-04-08, 09:32
So könnte es gehen:


SELECT MIN(PLZ), MAX(PLZ), '1', FELD1 FROM DATEI GROUP BY FELD1 UNION
SELECT MIN(PLZ), MAX(PLZ), '2', FELD2 FROM DATEI GROUP BY FELD2 UNION
SELECT MIN(PLZ), MAX(PLZ), '3', FELD3 FROM DATEI GROUP BY FELD3
ORDER BY 3, 1, 2

Fuerchau
24-04-08, 13:11
Stimmt, man muss nur die Aufgabe mal verstehen!