【发布时间】:2017-11-08 15:42:56
【问题描述】:
在这种情况下,我有两个已加入的表,并且由于每个医生都可以拥有多个许可证,它会创建多个重复项。我想将多个许可证状态和编号添加到表 1 中,如下所示。
这需要动态完成,因为它可能是分配给一位医生的大量许可证。
表 1 如下所示。
assignid physician_name profession
-------------------------------
1 bob md
2 travis do
3 ryan md
4 pete pa
5 susan np
6 ashley cnp
表2
assignid license_state license_num
-------------------------------
1 oh 561
2 mi 987
3 ca 785
4 ny 965
4 mi 125
5 oh 369
5 ca 541
加入
assignid physician_name profession license_state license_num
----------------------------------------------------------------
1 bob md oh 561
2 travis do mi 987
3 ryan md ca 785
4 pete pa ny 965
4 pete pa mi 125
5 susan np oh 369
5 susan np ca 541
我想动态地将连接表更改为如下所示。
assignid physician_name profession license_state1 license_num1 license_state2 license_num2
--------------------------------------------------------------------------------------------------
1 bob md oh 561
2 travis do mi 987
3 ryan md ca 785
4 pete pa ny 965 mi 125
5 susan np oh 369 ca 541
我尝试了这条路线,但这给了我作为列标题的状态。
WITH pivotdata AS (
SELECT assignid,physician_name, profession, license_state,license_num
FROM dbo.Physicians p JOIN dbo.Licenses l ON p.AssignID = l.AssignID
)
SELECT *
FROM
pivotdata
PIVOT (MAX(license_num) FOR license_state IN ([oh], [mi], [ca],[ny])) TT;
结果
physician_name profession oh mi ca ny
-------------------------------------------
bob md 561
travis do 987
ryan md 785
pete pa 125 965
susan np 369 541
【问题讨论】:
-
好的,那么您尝试解决什么问题?
-
@Sami 我已经编辑了我的问题以显示我认为可行的方法。
标签: sql sql-server join pivot pivot-table