2013-08-30 84 views
2

從Excel文件導入數據後,我結束了一個表,看起來像這樣(非常類似於透視表):如何反轉交叉表像表?

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

這可能是他排除無效評分後的答案。 – HansUp

+0

如果我拿出@HansUp所說的空值,這正是我所期待的。感謝您的快速回答:) – Clickhere

+1

好點@HansUp。更新了上述內容以包含該內容。 – APrough