In dieser Situation habe ich zwei Tabellen, denen ich beigetreten bin, und es erstellt mehrere Duplikate, da jeder Arzt mehrere Lizenzen haben kann. Ich möchte pivotieren und den Status der Mehrfachlizenz machen und zusätzliche Spalten zu Tabelle 1 hinzufügen, wie unten gezeigt.Verknüpfen Sie Tabellenzeilen als Spaltenwerte sql
Dies muss dynamisch durchgeführt werden, da es sich um eine erhebliche Anzahl von Lizenzen handeln kann, die einem Arzt zugewiesen sind.
Tabelle 1 sieht so aus.
assignid physician_name profession
-------------------------------
1 bob md
2 travis do
3 ryan md
4 pete pa
5 susan np
6 ashley cnp
Tabelle 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
Registriert
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
Ich möchte die Join-Tabelle dynamisch ändern wie folgt aussehen.
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
Ich versuchte diese Route, aber das gibt mir Staaten als Spaltenüberschrift.
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;
Ergebnisse
physician_name profession oh mi ca ny
-------------------------------------------
bob md 561
travis do 987
ryan md 785
pete pa 125 965
susan np 369 541
Ok, was haben Sie versucht, Ihr Problem zu lösen? – Sami
@Sami Ich habe meine Frage bearbeitet, um zu zeigen, was ich dachte, würde funktionieren. – smiller48