0

我经常以“交叉表”的方式从其他部门接收数据。

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 上,有没有办法自动“取消交叉”表格?

从常规表制作交叉表很简单,但是我还没有找到任何方法来做相反的事情。:/

感谢您的帮助!^^

4

1 回答 1

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

请参阅演示(SQL Server 演示)以查看工作版本。

于 2013-08-22T20:26:52.207 回答