Entschuldigung, ich habe keinen guten Titel für die Frage gefunden, also ändern Sie ihn entsprechend.Mehrere Zeilen in einer Spalte zusammenfassen SQL-Abfrage
Ich kann meine Frage mit einem minimalen Beispiel in MS SQL Server 2012 beschreiben:
create table #tmp
(
RowID varchar(10),
SectionCode int,
SectionName varchar(10)
)
insert into #tmp values('Record1' , 1 , 'AB');
insert into #tmp values('Record1' , 2 , 'CD');
insert into #tmp values('Record1' , 3 , 'EF');
insert into #tmp values('Record2' , 1 , 'AB');
insert into #tmp values('Record2' , 4 , 'GH');
insert into #tmp values('Record2' , 5 , 'IJ');
insert into #tmp values('Record3' , 2 , 'CD');
insert into #tmp values('Record3' , 5 , 'IJ');
Ich versuche, eine eine Zeile pro Rekordergebnis zu schaffen, in dem jeder Abschnitt eine Spalte ist und wenn es eine Reihe einem Abschnitt zugeordnet ist, wird der entsprechende Spaltenwert erhöht. Das ist (nicht), was ich will (die gleichen Aufzeichnungsdaten auf verschiedenen Zeilen)
select RowID,
case when SectionName = 'AB' then 1 else 0 end as [AB Section] ,
case when SectionName = 'CD' then 1 else 0 end as [CD Section] ,
case when SectionName = 'EF' then 1 else 0 end as [EF Section] ,
case when SectionName = 'GH' then 1 else 0 end as [GH Section] ,
case when SectionName = 'IJ' then 1 else 0 end as [IJ Section]
from #tmp
group by RowID , SectionName
, die diesen Ausgang gibt:
Ich brauche diese:
Vielen Dank im Voraus
Wie @ Bill erwähnt Wert von IJ für Record2 ist 1. Dank. –