이 상황에서는 두 개의 테이블을 조인했습니다. 각 의사가 여러 라이센스를 가질 수 있으므로 여러 개의 중복이 작성됩니다. 필자는 아래와 같이 여러 라이선스 상태와 번호를 표 1의 추가 열로 피벗시키고 싶습니다.테이블 열을 열 값으로 조인 SQL
이것은 한 명의 의사에게 할당 된 상당한 양의 라이센스 일 수 있기 때문에 동적으로 수행해야합니다.
표 1은 이와 같이 보입니다.
assignid physician_name profession
-------------------------------
1 bob md
2 travis do
3 ryan md
4 pete pa
5 susan np
6 ashley cnp
나는 동적으로 다음과 같이 할 수있는 조인 된 테이블을 변경하려면
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
가입 표 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_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
@Sami 나는 내가 생각했던 것을 보여주기 위해 나의 질문을 편집했다. – smiller48