如何取消透视表之类的交叉表?
Posted
技术标签:
【中文标题】如何取消透视表之类的交叉表?【英文标题】:How to unpivot a crosstab like table? 【发布时间】:2013-08-30 15:33:57 【问题描述】:从 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?
我找到了很多相反的例子(转动第二个表来得到第一个),但我还没有找到解决这种情况的方法。
【问题讨论】:
我在这篇文章中回答这个问题***.com/questions/7255423/… 【参考方案1】:当然
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
*为第一个表中的每个附加列重复最后一行
【讨论】:
这可能是他排除 Null 评级后的答案。 如果我像@HansUp 所说的那样取出 Null 值,这正是我想要的。感谢您的快速回答:)以上是关于如何取消透视表之类的交叉表?的主要内容,如果未能解决你的问题,请参考以下文章