Sql server 参加 患者床上的位置床。loc\U lvl\U 5\U id=位置床。loc\U int\U id左外连接 患者表上的诊断表。[就诊#]=诊断表.vst_int_id左外联接 诊断表上的编码表.icd9\U int\U id=编码表.icd9\U int\U id 其中(bil_cre_dt>=@BeginDateTime)和 bil_cre_dt

Sql server 参加 患者床上的位置床。loc\U lvl\U 5\U id=位置床。loc\U int\U id左外连接 患者表上的诊断表。[就诊#]=诊断表.vst_int_id左外联接 诊断表上的编码表.icd9\U int\U id=编码表.icd9\U int\U id 其中(bil_cre_dt>=@BeginDateTime)和 bil_cre_dt,sql-server,Sql Server,我有一个想法可能会对您有所帮助。请尝试以下查询 您的结果数据 select * into #Result from ( select '09/20/2017'DischargeDate ,'12345' MedRec ,'111100' VisitID ,'203' Location ,'TESTER' LastName ,'JEFF' FirstName ,'01/01/1984' DOB ,'90210' ZIP ,'P1'DxRank ,'4005A' Dx union a

我有一个想法可能会对您有所帮助。请尝试以下查询

您的结果数据

select * into #Result from
(
select '09/20/2017'DischargeDate  ,'12345' MedRec ,'111100' VisitID ,'203' Location ,'TESTER' LastName ,'JEFF' FirstName ,'01/01/1984'  DOB    ,'90210'  ZIP  ,'P1'DxRank ,'4005A'  Dx
union all
select '09/20/2017',  '12345',  '111100',    '203',  'TESTER',    'JEFF', '01/01/1984', '90210',   'S2', 'R42'
union all
select '09/20/2017',  '12345',  '111100',    '203',  'TESTER',    'JEFF', '01/01/1984', '90210',   'S3', 'E860'
union all
select '09/21/2017',  '23456',  '111101',    '205',  'TESTER',    'BILL', '02/02/2007', '45321',   'P1', 'N390'
)as a
静态查询

;with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in([P1],[S2],[S3]) )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,b.DOB,[P1],[S2],[S3] from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB ,ZIP     from #Result)b
on b.MedRec=a.Medrec
动态查询

Declare @columns varchar(max)=stuff((select distinct ','+Dxrank from #result for xml path('')),1,1,'')
Declare @Query nvarchar(max)
set @Query=';with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in('+@columns+') )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,    b.DOB,'+ @columns+  ' from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB      from #Result)b
on b.MedRec=a.Medrec'

print @Query
EXEC SP_EXECUTESQL @Query

我有一个想法可能会对你有所帮助。试试这个

您的结果数据

select * into #Result from
(
select '09/20/2017'DischargeDate  ,'12345' MedRec ,'111100' VisitID ,'203' Location ,'TESTER' LastName ,'JEFF' FirstName ,'01/01/1984'  DOB    ,'90210'  ZIP  ,'P1'DxRank ,'4005A'  Dx
union all
select '09/20/2017',  '12345',  '111100',    '203',  'TESTER',    'JEFF', '01/01/1984', '90210',   'S2', 'R42'
union all
select '09/20/2017',  '12345',  '111100',    '203',  'TESTER',    'JEFF', '01/01/1984', '90210',   'S3', 'E860'
union all
select '09/21/2017',  '23456',  '111101',    '205',  'TESTER',    'BILL', '02/02/2007', '45321',   'P1', 'N390'
)as a
静态查询

;with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in([P1],[S2],[S3]) )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,b.DOB,[P1],[S2],[S3] from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB ,ZIP     from #Result)b
on b.MedRec=a.Medrec
动态查询

Declare @columns varchar(max)=stuff((select distinct ','+Dxrank from #result for xml path('')),1,1,'')
Declare @Query nvarchar(max)
set @Query=';with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in('+@columns+') )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,    b.DOB,'+ @columns+  ' from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB      from #Result)b
on b.MedRec=a.Medrec'

print @Query
EXEC SP_EXECUTESQL @Query

您正使用哪个数据库引擎..sql server或my sql..?它是sql server。您正使用哪个数据库引擎..sql server或my sql..?它是sql server。
;with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in([P1],[S2],[S3]) )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,b.DOB,[P1],[S2],[S3] from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB ,ZIP     from #Result)b
on b.MedRec=a.Medrec
Declare @columns varchar(max)=stuff((select distinct ','+Dxrank from #result for xml path('')),1,1,'')
Declare @Query nvarchar(max)
set @Query=';with cte as (
select * from (
select MedRec,DxRank ,Dx from #result
)as b
pivot(max(Dx)for DxRank in('+@columns+') )as a
)
select distinct b.DischargeDate  , b.MedRec , b.VisitID , b.Location , b.LastName , b.FirstName ,    b.DOB,'+ @columns+  ' from cte a
inner join 
(select DischargeDate  , MedRec , VisitID , Location , LastName , FirstName ,    DOB      from #Result)b
on b.MedRec=a.Medrec'

print @Query
EXEC SP_EXECUTESQL @Query