orausdo
Goto Top

Daten aus mehreren Zeilen in einer Zeile zusammenfassen

Hallo zusammen,

ich habe folgende u.a.. Tabelle. SQL Server mit T-SQL

Die Zeilen in der Quelle müssen in einer Zeile stehen wie im Teilausschnitt Ziel
Leider komme ich irgendwie nicht weiter.
Habe mit Pivotierung usw. getestet.
geht aber leider irgendwie nicht.

Die Tabelle enthält mehrere 100000 Datensätze mit verschiedenen ID's und die anderen Werte sind auch alle unterschiedlich.
Die Spaltennamen sollte wie angegeben sein.

Könnte mir da bitte einer von Euch auf die Sprünge helfen?

Vielen Dank.

Grüsse
tabellen

Content-ID: 71483985465

Url: https://administrator.de/contentid/71483985465

Ausgedruckt am: 24.11.2024 um 13:11 Uhr

13676056485
Lösung 13676056485 07.07.2024 aktualisiert um 15:55:49 Uhr
Goto Top
Hi.
Z.B.
SELECT
    ID,
    MAX(CASE WHEN Nr <> '' THEN Nr ELSE NULL END) AS Nr,  
    MAX(CASE WHEN Info1 <> '' THEN Info1 ELSE NULL END) AS Info1,  
    MAX(CASE WHEN Info2 <> '' THEN Info2 ELSE NULL END) AS Info2,  
    MAX(CASE WHEN Info3 <> '' THEN Info3 ELSE NULL END) AS Info3,  
    MAX(CASE WHEN Info4 <> '' THEN Info4 ELSE NULL END) AS Info4  
FROM
    your_table
GROUP BY
    ID;
Gruß wrk
orausdo
orausdo 07.07.2024 um 16:03:25 Uhr
Goto Top
Moin wrk,

super, vielen Dank für die schnelle Hilfe.

Habe es auch schon mit Case...when probiert.
Aber ohne Max Aggr.
Brachte leider nicht das gewünschte Ergebnis...

Danke nochmal.

Gruss O
13676056485
13676056485 07.07.2024 aktualisiert um 22:41:47 Uhr
Goto Top
Bidde. Dann auch als gelöst markieren nicht vergessen.

Funktioniert einwandfrei, guckst du
https://sqlfiddle.com/sql-server/online-compiler?id=a1a6125c-8d7a-444b-a ...
MysticFoxDE
MysticFoxDE 07.07.2024 um 22:38:57 Uhr
Goto Top
Moin @orausdo,

Brachte leider nicht das gewünschte Ergebnis...

dann probiere es mal damit.

SELECT Table1.ID AS ID, Table1.Nr AS Nr, Table2.Info1 AS Info1, Table3.Info2 AS Info2, Table4.Info3 AS Info3, Table5.Info4 AS Info4
FROM
    Table AS Table1, Table AS Table2, Table AS Table3, Table AS Table4, Table AS Table5
WHERE
    (Table1.ID = "815" AND Table1.Nr <> "") AND  
    (Table2.ID = "815" AND Table2.Info1 <> "") AND  
    (Table3.ID = "815" AND Table3.Info2 <> "") AND   
    (Table4.ID = "815" AND Table4.Info3 <> "") AND   
    (Table5.ID = "815" AND Table5.Info4 <> "")   

Gruss Alex
orausdo
orausdo 08.07.2024 um 08:23:55 Uhr
Goto Top
Moin Alex,

auch Dir vielen Dank für Unterstützung.
Die Lösung von wrk hat bereits funktioniert.
Bei Deiner Lösung ist die ID fest hinterlegt.
Ich habe aber unzählige ID's
Das kann dann wohl nur für die von mir gegebenen Daten die Lösung sein.
Aber trotzdem vielen Dank, dass Du Dir die Zeit genommen hast.

Gruss O
orausdo
orausdo 08.07.2024 um 08:25:21 Uhr
Goto Top
Moin wrk,

klar mache ich.

Danke für Deine Hilfe.

Gruss O