我正在尝试编写一个将转换平面表的Access 2016查询
ID |Date |Site Name | Alexandrium | Ceratium | etc etc
...进入多表:
ID |Date |Site Name | Species | Num
我已经能够做到这一点,但是查询非常长:每个物种我有20个值/列,我必须为每个物种名称写出一个UNION查询:
SELECT ID, Date, [Site Name], "Alexandrium" as Species, Alexandrium as Num
FROM DatabaseName
UNION ALL
SELECT ID, Date, [Site Name], "Ceratium" as Species, Ceratium as Num
FROM DatabaseName
UNION ALL
等等,等等。
有没有更好的方法来执行此操作,其中一个可以为查询提供列名列表,它将迭代它们,执行查询,以及UNION它们全部?
提前致谢!
答案 0 :(得分:0)
Access并没有像SQL Server那样轻松地进行忽略。
如果您有姓名列表并且不想写出SQL,您可以将其提供给查询,如下所示:
SELECT "SELECT ID, Date, [Site Name], '" & [SpeciesName]
& "' as Species, " & [SpeciesName] & " as Num FROM DatabaseName UNION " AS Expr1
FROM Species
然后复制结果,删除最后一个UNION并将SQL粘贴到查询中