첫 번째 포스터이므로 필요한 모든 것을 자세히 설명하지 않은 경우 사과드립니다! 비슷한 질문은 찾았지만 찾을 수는 없었습니다.SQL STUFF 및 CASE 표현식 및 조인 된 테이블
나는 같은 차량에 앉아 됨으로써 다른 클라이언트에 연결되어 클라이언트를 표시하는 쿼리 작성 요청을받은-
간단히 말해Ref Ref2
1 2
1 3
1 4
2 1
2 3
2 4
, 클라이언트 1,2,3,4 모두에를 같은 차량과 그래서 그들을 함께 연결하는 테이블에 행이 있습니다.
내 쿼리의 나머지 부분과 동일한 행에있는 보고서에 링크 된 파일의 세부 정보를 추가해야하는 과제가 있습니다. 나는 여기에 또 다른 질문에서 발견 된 물건 기능을 사용하여 이것을 수행했습니다 :
select distinct r.ref
, stuff(
(select ','+r2.ref2 as [text()]
from related r
where r2.ref = r.ref
for xml path ('')
),1,1,' ') as [linked]
from related r2
행 1 : 2,3,4에 표시되며 정상적으로 작동합니다.
내가해야 할 일은 위와 같은 이론을 사용하여 차량 내에서의 클라이언트의 위치를 상세히 설명하는 것과 같습니다. 여기
Ref |Linked | Driver/Passenger
1 | 2,3,4 | D,P,P,P
내가 CASE 식을 사용하여 적응으로 쿼리입니다 - 내 조인이 문제 중 하나라고 생각하고, 다른 곳 포함하는 시도했지만 아무 소용이 :
select distinct r.ref
, stuff(
(select ','+CASE WHEN s.status = 'DRV' THEN 'D' WHEN
s.status = 'PASVEC' THEN 'P' WHEN s.status = 'OWNND' THEN 'P' ELSE '' END [text()]
from status s
where s.ref = r.ref2 -- Looking at the ref of the linked case
for xml path ('')),1,1,' ') as [D/P]
from related r
편집 :
내가 얻고 출력은 관련된 모든 경우의 목록
Ref | D/P
1 | D
2 | P
3 | P
4 | P
오류 오 익스플로러되지 않습니다 utput.
또한 from 문에서 내부 조인을 시도했습니다.
미리 도움 주셔서 감사합니다.
한 가지. FROM Satus S INNER JOIN <기타 테이블 이름> R ON s.ref = r.ref2. 쿼리를 통해 오류가 발생합니까? 출력 샘플을 게시 할 수 있습니까? –
원하는 방식으로 반환되지 않는 것이 있습니다. 그러나 문제는 무엇인지 알려주지 않습니다. 여기서 시작하는 것이 좋습니다. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
사과 - 세부 정보 출력으로 업데이트되었습니다! – Laing111