如何在 ms 访问中存储在另一个 table 中时转置列
How to transpose columns while storing in another table in msaccess
我在 MS Access 中有一个临时的 table,其中包含以下列 headers
ProjectID, JanuaryCost, FebruaryCost ,...DecemberCost Year
1001 2016
1001 2017
我希望将这些记录存储在具有以下字段的另一个访问 table 中
ProjectID , IncurredDate , Cost
1001 01/2016
1001 02/2016
.
.
1001 12/2017
我该怎么做?
我不是访问方面的极端专家,所以如果有人能给我一个示例查询而不是仅仅建议像 (Normalize)
这样的方法,那就太好了
使用 UNION 查询将源数据重新排列为规范化结构。
SELECT ProjectID, "1/1/" & [Year] AS IncurredDate, [JanuaryCost] AS Cost FROM tablename
UNION SELECT ProjectID, "2/1/" & [Year], [FebruaryCost] FROM tablename
...
UNION SELECT ProjectID, "12/1/" & [Year], [DecemberCost] FROM tablename;
必须使用查询生成器的 SQLView 并键入或 copy/paste 行。有 50 SELECT 行的限制。
IncurredDate 字段应为 date/time 类型并填充完整日期,如我在示例中所示。或者,如果真的只想在文本字段中输入月份和年份,请填充为 YYYY/MM 以启用更简单的 sorting/filtering 或将年份和月份放在单独的字段中。
我在 MS Access 中有一个临时的 table,其中包含以下列 headers
ProjectID, JanuaryCost, FebruaryCost ,...DecemberCost Year
1001 2016
1001 2017
我希望将这些记录存储在具有以下字段的另一个访问 table 中
ProjectID , IncurredDate , Cost
1001 01/2016
1001 02/2016
.
.
1001 12/2017
我该怎么做? 我不是访问方面的极端专家,所以如果有人能给我一个示例查询而不是仅仅建议像 (Normalize)
这样的方法,那就太好了使用 UNION 查询将源数据重新排列为规范化结构。
SELECT ProjectID, "1/1/" & [Year] AS IncurredDate, [JanuaryCost] AS Cost FROM tablename
UNION SELECT ProjectID, "2/1/" & [Year], [FebruaryCost] FROM tablename
...
UNION SELECT ProjectID, "12/1/" & [Year], [DecemberCost] FROM tablename;
必须使用查询生成器的 SQLView 并键入或 copy/paste 行。有 50 SELECT 行的限制。
IncurredDate 字段应为 date/time 类型并填充完整日期,如我在示例中所示。或者,如果真的只想在文本字段中输入月份和年份,请填充为 YYYY/MM 以启用更简单的 sorting/filtering 或将年份和月份放在单独的字段中。