[OK]を、私の前の答えは、あなたが何を意味するのか全く一致しませんでした。テーブルをピボット回転させて、各ラインにPatient_ID
とFull_name
を1つずつ、provider_type
ごとに配置します。私は各患者が1つのタイプのプロバイダを1つしか持たず、それ以上ではないと仮定します。それ以上あれば、各患者に複数の行があり、とにかくそれは本当に可能だとは思わない。
私の解決策はピボットです。最初の部分はわかりやすいようにするため、サブクエリに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
はただ1つのプロバイダ各行で、各患者のために多くの行があり、ピボットは、単一の行にすべてを置きます。何かがうまくいかないか教えてください。
あなたは[type1]、[type2]などで必要なすべてのタイプを書く必要があります。[]内に入れるだけで、他の文字は 'または他のものとして必要ありません。
いくつかの型だけを置くと、他の型のプロバイダは表示されません。
何か問題がないか教えてください。
素晴らしいです。それは素晴らしい仕事でした。ありがとう。 – JoshuaB
それを聞いてうれしい。私の答えを確認してください。 :) – BD01
"CASE"を出力に追加する方法はありますか?私は、 "TABLE_PATIENT"のエイリアス "T"を作成した後に "*、"、 "TABLE_PATIENT。*"、 "T. *"を試しましたが、うまくいきませんでした。 – JoshuaB