2013-08-30 4 views
2

엑셀 문서에서 데이터를 가져온 후 나는 (피벗 테이블과 매우 유사)이 보이는 테이블에 결국 :테이블과 같은 크로스 탭을 unpivot하는 방법은 무엇입니까?

EMPLOYEEID | SKILL1 | SKILL2 | SKILL 3 
--------------------------------------- 
    emp1 | 1 |  | 3 
    emp2 | 2 | 3 |  
    emp3 |  |  | 1 
    emp4 |  | 2 | 3 

그리고 내 데이터베이스에서 나는 지식의 각 레벨을 저장하는 또 다른 테이블이 모든 직원에 대한 각각의 기술 :

EMPLOYEEID | SKILLID | LEVEL_OF_KNOWLEDGE 
------------------------------------------ 
    emp1 | SKILL1 |   1 
    emp1 | SKILL3 |   3  
    emp2 | SKILL1 |   2 
    emp2 | SKILL2 |   3 
    emp3 | SKILL3 |   1 
    emp4 | SKILL2 |   2 
    emp4 | SKILL3 |   3 

내 질문에, 어떻게 첫 번째 테이블에서 데이터를 검색하고 두 번째에 저장할 수있다? Access 쿼리 만 사용하거나 vba를 처리 할 수 ​​있습니까?

내가 찾은 반대 (첫 번째를 얻기 위해 두 번째 테이블을 선회)하지만이 사건을 해결 할 수있는 방법을 찾아야 관리하지 않은 일을 많은 예.

+0

내가이 게시물이 답변 http://stackoverflow.com/questions/7255423/how-to-simulate -unpivot-in-access-2010/42726043 # 42726043 –

답변

4

은 물론

SELECT EmployeeID, "SKILL1" AS SkillID, SKILL1 AS Level_OF_Knowledge WHERE SKILL1 IS NOT NULL 
UNION ALL SELECT EmployeeID, "SKILL2" AS SkillID, SKILL2 AS Level_OF_Knowledge WHERE SKILL2 IS NOT NULL 
UNION ALL SELECT EmployeeID, "SKILL3" AS SkillID, SKILL3 AS Level_OF_Knowledge WHERE SKILL3 IS NOT NULL 

이 * 첫 번째 테이블의 각 추가 열의 마지막 행을 반복

+2

Null 등급을 제외하면 대답 일 수 있습니다. – HansUp

+0

@HansUp이 말한 것처럼 Null 값을 취하면이 값이 내가 원하는 값입니다. 빠른 답변 주셔서 감사합니다 :) – Clickhere

+1

좋은 지적 @HansUp. 이를 포함하도록 위의 내용을 업데이트했습니다. – APrough