2017-07-17 74 views
0

我有一个临时表中的MS Access与下列标题如何转列,而在另一个表存储在MSACCESS

ProjectID, JanuaryCost, FebruaryCost ,...DecemberCost Year 
1001  $25   $50    $35   2016 
1001  $15   $22    $26   2017 

我想这些记录保存在它具有以下字段的另一个访问表

ProjectID , IncurredDate , Cost 
1001   01/2016  $25 
1001   02/2016  $50 
. 
. 
1001   12/2017   $26 

我该怎么做? 我不是一个极端的专家在访问,所以如果有人可以给我一个示例查询,而不是像(正常化)

+0

那么,这不是一个免费的代码写作服务。你有没有尝试过自己? – GhostCat

+0

你正在寻找在这里生成数月,并且逻辑对我来说并不完全清楚。你的问题需要适量的SQL奥林匹克来实现。 –

+0

我正在导入一个excel文件到上面表1所示的结构中。我希望将列名(让说1月)和年份组合来实现这一点。 – Anup

回答

0

这样的方法,将是伟大的使用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。有50条SELECT线的限制。

IncurredDate字段应该是日期/时间类型,并填充完整日期,如示例中所示。或者如果真的只想在文本字段中输入月份和年份,请填充为YYYY/MM,以便更轻松地排序/过滤,或将年份和月份放在单独的字段中。

+0

奇妙的为我工作。谢谢 ! – Anup

相关问题