2016-06-14 9 views
0

정말 도움이 필요하며 다음과 같은 결과 세트를 얻으려는 SQL 프로그래머처럼 생각할 수없는 SQL 관점에서 보입니다.SQL 수직 열을 수평 및 계수 값으로 변환

+-----------------+-----------------+-----------------+-----------------+ 
| Date Received | Request Type |  Branch  |  Division | 
+-----------------+-----------------+-----------------+-----------------+ 
| 2016-05-10 | Status Report |  Alpha  |  AAA  | 
| 2016-05-11 | Business Case |  Bravo  |  BB  | 
| 2016-05-12 | Business Plan |  Charlie |  C   | 
| 2016-05-13 | Project Charter |  Alpha  |  A   | 
| 2016-05-14 | Status Report |  Alpha  |  AAA  | 
| 2016-05-15 | Business Plan |  Charlie |  CC  | 
| 2016-05-16 | Financial Report|  Alpha  |  AAAA  | 
| 2016-05-17 | Financial Report|  Alpha  |  AA  | 
| 2016-05-18 | Status Report |  Bravo  |  BBB  | 
| 2016-05-19 | Financial Report|  Alpha  |  AAA  | 
| 2016-05-20 | Financial Report|  Bravo  |  B   | 
+-----------------+-----------------+-----------------+-----------------+ 

나는 기본적으로 메트릭 (각 요청 유형의 발생/수를 캡처 한 후하여 정렬하는 당신의 도움이 필요합니다 :

내 MS 액세스 MDB 파일의 스냅 샷 인 (아래 다음 표를 고려 새로운 결과 발생 부)는 후술 :

+-----------------+-----------------+-----------------+-----------------+ 
| Division  | Status Report | Business Case | Business Plan | 
+-----------------+-----------------+-----------------+-----------------+ 
| A    |  1  |   0  |  0  | 
| AA   |  1  |   0  |  0  | 
| AAA   |  1  |   0  |  0  | 
| B    |  0  |   1  |  0  | 
| BB   |  0  |   1  |  0  | 
| BBB   |  0  |   1  |  0  | 
| C    |  1  |   0  |  1  | 
| CC   |  1  |   0  |  1  | 
| CCC   |  1  |   0  |  1  | 
+-----------------+-----------------+-----------------+-----------------+ 
+3

체크 아웃 주문이를 사용합니다. 리본, 만들기 -> 쿼리 마법사에서 찾으십시오. – HansUp

+0

'[요청 유형] = '사례 유형'= '상태 보고서'THEN 1 END) AS [상태 보고서], COUNT (사례 유형 = '비즈니스 사례'THEN 1 END) 사례], COUNT 개 (요청 유형 = '사업 계획'THEN 1 END) 그대로 [사업 계획] FROM yourTable GROUP BY 지점, 부서 ORDER BY 지점, 부서 – MatBailie

답변

0

편집 :

DECLARE @count int; 
DECLARE @count0 int; 
DECLARE @count1 int; 


set @count = (select Count(Request Type) from TABLENAME where Request Type = 'Status Report', Division = 'AAA') 

set @count0 = (select Count(Request Type) from TABLENAME where Request Type = 'Business Case', Division = 'AAA') 

set @count1 = (select Count(Request Type) from TABLENAME where Request Type = 'Business Plan', Division = 'AAA') 
0 : 분기 요청 유형을 계산

편집 : 크로스 탭 쿼리 마법사를

order by COLUMNXXX ASC 
+0

고마워요! 너무 많이, 이것은 짖고 올라갈 정말로 긴 나무처럼 보인다. 나는 웹에 대한 많은 참고 자료를 보지 못했고, 따라서 찬성가들과 의견을 나누었습니다. 귀하의 답변에 감사드립니다. 건배 – BobbyJones

+0

np, 계속 작업하겠습니다. – HumbleWebDev

+0

나는 그것을 파고 들었고, 당신은 열 구분의 모든 행을 반복하고 나누기를 계산할 필요가있을 것 같습니다. 이것은 아주, 아주 느린 .... 볼 수있는 것 ..... 행운을 빌어 요 ..... ..... 이것은 아마도 어색한 테이블 디자인입니다. 아마 foriegn 키가있는 여러 개의 테이블이 있어야하기 때문입니다. 추상화를하면이 프로 시저의 실행 가능성이 향상됩니다. – HumbleWebDev