Angenommen habe ich die folgenden:SQL: Zeile Spaltendaten
if object_id('tempdb..#Dependents') is not null
drop table #Dependents
create table #Dependents
(EmpNo varchar(12), DepID varchar(12), Relation varchar(12));
go
if object_id('tempdb..#Dep_Benefits') is not null
drop table #Dep_Benefits
create table #Dep_Benefits
(DepID varchar(12), PlanCode varchar(12), Coverage varchar(25));
go
INSERT INTO #Dependents VALUES('001', '111', 'SON');
INSERT INTO #Dependents VALUES('001', '222', 'SON');
INSERT INTO #Dependents VALUES('001', '333', 'DAUGHTER');
INSERT INTO #Dependents VALUES('002', '666', 'SON');
INSERT INTO #Dependents VALUES('002', '777', 'DAUGHTER');
INSERT INTO #Dep_Benefits VALUES('111', 'AAAA', 'MEDICAL');
INSERT INTO #Dep_Benefits VALUES('111', 'BBBB', 'DENTAL');
INSERT INTO #Dep_Benefits VALUES('111', 'CCCC', 'VISION');
INSERT INTO #Dep_Benefits VALUES('111', 'DDDD', 'DISABL');
INSERT INTO #Dep_Benefits VALUES('222', 'AAAA', 'MEDICAL');
INSERT INTO #Dep_Benefits VALUES('222', 'BBBB', 'DENTAL');
INSERT INTO #Dep_Benefits VALUES('222', 'CCCC', 'VISION');
INSERT INTO #Dep_Benefits VALUES('333', 'AAAA', 'MEDICAL');
INSERT INTO #Dep_Benefits VALUES('333', 'BBBB', 'DENTAL');
INSERT INTO #Dep_Benefits VALUES('666', 'AAAA', 'MEDICAL');
INSERT INTO #Dep_Benefits VALUES('666', 'BBBB', 'DENTAL');
INSERT INTO #Dep_Benefits VALUES('666', 'CCCC', 'VISION');
SELECT * FROM #Dependents;
SELECT * FROM #Dep_Benefits;
Wie kann ich den Ausgang dieses erhalten werden wie:
Employee | Dependent | Plan 1 | Plan 2 | Plan 3
001 111 AAAA BBBB DDDD
001 222 AAAA BBBB CCCC
001 333 AAAA BBBB
002 666 AAAA BBBB CCCC
I mit 3 Pläne nur besorgt bin, auch wenn einem Abhängigen mehr zugeordnet ist. Dies ist eine feste Anfrage von einem Kunden (nur 3 Pläne) also bitte keine Kommentare, warum dies eine schlechte Idee wäre :) Ich habe ihnen bereits gesagt, dass es keine Garantie gibt, welche 3 Pläne zurückgegeben werden können, wenn ein Abhängiger mehr als 3 hat .
Ich habe mir eine Pivot-Tabelle angeschaut, aber es scheint einfach nicht zu funktionieren.