我经常以“交叉表”方式从其他部门收到数据。
color_|_person1_|_person2_|_person3___|
red | yes | yes | no
Blue | no | no | yes
Green | no | yes | no
(这只是一个例子)
实际上行(Person [1-2-3])是另一个表中的ID。
所以它看起来应该是这样的:
IDPerson__|_Color__|_Activated_|
person1 | red | yes
person1 | Blue | yes
person1 | Green | no
etc...
这些数据位于Excel和Access 2003上, 有没有办法自动“解开”表格?
从常规表格制作交叉表非常简单,但是我还没有找到任何方法来执行相反的操作。 :/
感谢您的帮助! ^^
答案 0 :(得分:1)
MS Access没有UNPIVOT函数,它会将您的数据列转换为行,但您可以使用UNION ALL查询:
SELECT 'person1' as IDPerson, color, person1 as activated
FROM yourtable
UNION ALL
SELECT 'person2' as IDPerson, color, person2 as activated
FROM yourtable
UNION ALL
SELECT 'person3' as IDPerson, color, person3 as activated
FROM yourtable
请参阅Demo(SQL Server演示)以查看工作版本。