好吧,我以前的答案一点都没有你的意思一致。您希望对每个的每个线路上的每个线路分配一个Patient_ID
以及每个Full_name
。我假设每个病人只有一个类型的提供者,而不是更多;如果还有更多的话,每个病人你都会有不止一行,反正我不认为这是真的可能。
这是我的解决方案与枢轴。第一部分是让它更容易理解,所以我在子查询中创建了一个名为TABLE_PATIENT
的表。
WITH TABLE_PATIENT AS
(
SELECT TablePatient.Patient_ID,
TableProviders.Provider_Type,
TableNames.Full_Name
FROM TablePatient LEFT JOIN
TableProviders on TablePatient.Patient_ID = TableProviders.Encounter
LEFT JOIN
TableNames on TableNames.Provider_ID = TableProviders.Provider_ID
group by TablePatient.Patient_ID,
TableProviders.Provider_Type,
TableNames.Full_Name
)
SELECT *
FROM TABLE_PATIENT
PIVOT
(
min(Full_name)
for Provider_type in ([type1], [type2],[type3])
) AS PVT
所以TABLE_PATIENT
只是有许多行对每一个病人,一个供应商的每一行,和枢穿上单排的一切。告诉我,如果有什么不工作。
你需要在[type1],[type2]等中写入你想要的每种类型,只要把它们放在[]中,不需要其他字符'或其他任何东西。
如果你只放了一些类型,那么查询就不会显示其他类型的提供者。
告诉我,如果有什么不工作。
太好了。这很好。谢谢。 – JoshuaB
很高兴听到这个消息。那么请你确认我的答案? :) – BD01
有没有办法给输出添加一个“CASE”?在为“TABLE_PATIENT”制作别名“T”之后,我尝试了“*”,还尝试了“TABLE_PATIENT。*”和“T. *”,但都没有奏效。 – JoshuaB