2017-05-04 3 views
0

Diese beiden Tabellen existieren bereits und suchen daher keine dynamische Situation. Das Ziel besteht darin, die Datenzeilen horizontal zu konsolidieren, sie jedoch im äußersten linken Feld "Daten" verfügbar zu haben. Es wird nie einen vierten Eintrag geben.Aktualisieren von Zeilen in verschiedene Spalten

Ich bin mit Microsoft SQL Server

Tabelle 1:

ID|Data 
-------- 
A | 1 
A | 2 
B | 3 
C | 4 
C | 5 
C | 6 

Table2:

ID | Data 1 | Data 2 | Data 3 
------------------------------ 
A |  |  | 
B |  |  | 
C |  |  |  

Gewünschtes Ergebnis von Tabelle 2:

ID | Data 1 | Data 2 | Data 3 
------------------------------ 
A | 1 | 2 | 
B | 3 |  | 
C | 6 | 7 | 8 
+0

Warum möchten Sie die Daten in diesem Format speichern? Normalerweise würden Sie es in diesem Format für die Präsentation zeigen, aber nicht so speichern. – ollie

+0

Welche Datenbank benutzen Sie? – GurV

Antwort

1

Sie row_number verwenden können:

select id, 
    max(case when rn = 1 then data end) as data_1, 
    max(case when rn = 2 then data end) as data_2, 
    max(case when rn = 3 then data end) as data_3 
from (
    select t.*, 
     row_number() over (
      partition by id order by data 
      ) as rn 
    from your_table t 
    ) t 
group by id; 
Verwandte Themen