2011-09-01 4 views
1

필자는 피벗 테이블 예제를 대부분 살펴 봤지만 비슷한 시나리오를 아직 발견하지 못했습니다 (플러스, 아마도이 문제로 내 리그를 벗어났습니다). 내가 노력하고있어조회 테이블이있는 Sql Server 피벗

 
dbo.Employees 
employee_ID INT 
employee_name NVARCHAR(50) 
 
employee_ID | employee_name 
1   | Joe Smith 
2   | Don Johnson  
 
dbo.Attributes 
attribute_ID INT 
attribute_description NVARCHAR(50) 
 
attribute_ID | attribute_description 
50   | Works Weekends 
55   | Wears Hats 
61   | Enjoys Baseball 
 
dbo.EmployeeAttributes 
employee_attribute_ID INT 
employee_ID_fk INT 
attribute_ID_fk INT 
 
employee_attribute_ID | employee_ID_fk | attribute_ID_fk 
20     | 1    | 50 
21     | 2    | 61 
22     | 2    | 55 

을 :

나는 종업원 테이블, 속성 테이블, 직원과 일치 속성 조회 테이블이 속성이 열로 표시되는 결과 세트로 끝나기 위해서는 b 속성이 같은, 특정 직원에 대한 존재 여부를 나타내는 oolean 값 :

 
employee_ID | employee_name | Works Weekends | Wears Hats | Enjoys Baseball 
1   | Joe Smith  | 1    | 0   | 1 
2   | Don Johnson | 0    | 1   | 0 

어떤 도움은 매우 극명하게 될 것이다.

+0

내가이 주제 [여기] (에 블로그를 가지고 http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/how-to-unpivot-and-pivot). 도움이되는지 알려주세요. – DForck42

답변

1

지금은 가지 시간 중 해요,하지만 몇 가지 포인터를 제공 도움이되지 수 :

  1. 을 기본적인 (비 피벗) 쿼리를 조립합니다. 테이블 사이에 LEFT JOIN 쌍을 사용해야합니다. 일단 그렇게하면 피봇으로 진행합니다. 물건에
  2. 봐가 나는 동적 PIVOT에 서면으로 작성했습니다 :
+0

Adrian에게 감사드립니다. 모든 아이디어를 0으로 null 및 값을 1로 변경하려면 사례 문을 추가하는 방법을? – Ethan

+0

예 : 'YourValue가 null이고 then else else 1 end' –

+0

죄송합니다. 케이스 문장을 추가 할 곳을'의미 '했습니다. select 문에 추가하면 null을 catch하지 않습니다. – Ethan