使用字段名称作为值将数据库字段折叠为行

时间:2019-05-21 16:01:15

标签: sql database ms-access

因此,Microsoft Access sql受到一些限制,但我很好奇是否可以使用某些字段名称为行生成值。有点难以解释,但这是一个示例:

IDNum   010101   010102   010103
  1     5/20/19  5/21/19  5/22/19
  2     5/28/19  5/28/19  5/30/19

每个字段名称中都有3个2位数字值,分别代表版本,过程,步骤。因此,第一个字段是版本1,流程1,步骤1。这些最多可以增加10个,所以我如图所示包含了2位数字。我正尝试将表格折叠如下:

IDNum   Date    Version   Process   Step
  1     5/20/19    1         1       1
  1     5/21/19    1         1       2
  1     5/22/19    1         1       3
  2     5/28/19    1         1       1
  2     5/28/19    1         1       2
  2     5/30/19    1         1       3

是否可以像这样在一次访问查询中折叠数据?我一直在努力寻找一种干净的一体解决方案。从技术上讲,这些列中有60多个,因此对每个列进行单独查询似乎有点麻烦。

任何有关方法论的解决方案都很好。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用union all

select idnum, [010101] as date, 1 as version, 1 as process, 1 as step
from t
union all
select idnum, [010102] as date, 1 as version, 1 as process, 2 as step
from t
union all
select idnum, [010103] as date, 1 as version, 1 as process, 3 as step
from t;