테이블이 두 개 있습니다. tblicence 및 tbLicenceTypes입니다.다중 테이블 조인 작업에서 문제가 발생했습니다.
tbLicence는
tbLicenceTypes가
같은 데이터를 포함tbLicence가 두 feilds의 LicenceTypes을 갖는다
AgentId LineOfAuthority LicenceTypes
......... .................... ................
287 Bail Bond,Casualty,Dental Services 1
287 Casualty,Industrial Fire,Life 4
287 Industrial Fire,Life 4
tbLicenceTypes
같은 데이터를 포함 LicenceTypesX 세 필드 AgentId LineOfAuthority, LicenceTypes을 갖는다LicenceTypes LicenceTypesX
............ .............
1 Producer
2 Sales Representative
3 Insurance Agent
4 Title Agent
이제는 사기에 할당 된 모든 라이센스 유형을 가져오고 싶습니다. 나는 AgentId는 287이며, 당국의 라인 사상자는 ... 예상 출력은 ... 그것은 작동하지 않습니다 내가 코드 라인 아래에 시도이
LicenceTypes LicenceTypesX
........... ...............
1 Producer
4 Title Agent
같이해야 의미
;WITH cte AS (
SELECT
AgentId,
CAST('<r>' + REPLACE(REPLACE(LineOfAuthority,'&','&'), ',', '</r> <r>') + '</r>' AS XML) AS LineOfAuthoritys
FROM tbLicence
)
,FinalList AS (
SELECT
AgentId,
RTRIM(LTRIM (PTable.PColumn.value('.', 'VARCHAR(MAX)'))) AS LineOfAuthoritys
FROM cte
CROSS APPLY LineOfAuthoritys.nodes('//r') AS PTable(PColumn)
)
SELECT DISTINCT
T.LicenceTypes AS LicenceTypes ,
F.LineOfAuthoritys AS LicenceTypesX
FROM FinalList F
CROSS APPLY (SELECT LicenceTypes FROM tbLicenceTypes TP WHERE TP.LicenceTypesX = f.LineOfAuthoritys) AS T
WHERE F.LineOfAuthoritys = @LineOfAuthority
AND F.AgentId = @AgentId
ORDER BY T ASC
제발 도와주세요 !!!
결과보기 : "그것은 작동하지 않는다"? – Jens
귀하의 desc에 따라. 당신은 단지 "4 - 타이틀 에이전트"결과만을 얻습니다. 어떻게 "1 - 프로듀서"가 결과에 올 것입니까? 귀하의 항목을 확인하십시오. – Ajay2707
사실 나는 위의 코드를 작업하기 위해 태클을하고 있었고 ... 제발 도와주세요! – Nida