我是一位经验丰富的Excel VBA开发人员,我正在将一个数据库放在Access中,以构建我的数据并将其正确地输入分析工具(Tableau)。通过Excel VBA从多个数据源创建的平面文件最终不够灵活,无法用于强大的分析,因此我在Access中构建结构并编写查询以驱动每种查看数据的方式。我是SQL的新手,我正在努力学习以“正确”的方式使用它,而不是诉诸于VBA来做所有事情。
我的问题涉及将多个记录与多个字段组合成更多字段的记录。我正在记录多个位置执行文件提交的日期,他们必须每月提交一个文件。目前,数据被输入数据库,如下所示:
Location | Jan | Feb | Mar | Apr | etc |
1 | [Submission Date] | ... | | | |
2 | ... | | | | |
对于分析来说,似乎有点像这样:
Location | Month | Submission Date
1 | Jan | [Submission Date]
1 | Feb | ...
如何通过查询重构数据,或者这甚至是实现此目的的最佳方法?虽然我可以在VBA中轻松地完成此操作,但我正在尝试正确地学习何时使用SQL以及何时使用VBA来完成任务。
提前感谢所有人,如果有人想分享一些可靠的资源来构建查询,重组数据或何时使用VBA与SQL,我都很感激。到目前为止,SQL对我来说是一项难以进行的一次性研究。
答案 0 :(得分:2)
查看Union查询 - 这是我在需要将矩阵数据转换为行时使用的内容。像
这样的东西Select location, "Jan" as month, [jan] as [submission date] from [data table]
union all select location, "Feb", feb from [data table]
union all select location, "Mar", mar from [data table]
....
如果您喜欢所获得的内容,可以在其他查询中使用此Union,包括Make表查询,如果您需要为其他目的制作规范化表。