使用 MS Access Query 逆透视或转换数据
Unpivot or transform data using MS Access Query
大师下午好!
我希望有 Access 和 SQL 经验(和时间)的人能够编写一些 SQL 代码,我可以在 MS Access 中使用这些代码 transform/unpivot 一些数据.我想这有点像逆轴。
当前table“tbl_Weekly_Forecast”的结构如下;
Item | A | B | C | D |
-------------------------------
61000224 | 1 | 2 | 3 | 4 |
64000123 | 25 | 25 | 25 | 25 |
66400005 | 38 | 38 | 37 | 37 |
想要的查询输出是这样的;
Item | Period | Forecast |
-------------------------------
61000224 | A | 1 |
61000224 | B | 2 |
61000224 | C | 3 |
61000224 | D | 4 |
64000123 | A | 25 |
64000123 | B | 25 |
64000123 | C | 25 |
64000123 | D | 25 |
66400005 | A | 38 |
66400005 | B | 38 |
66400005 | C | 37 |
66400005 | D | 37 |
table“tbl_Weekly_Forecast”中实际上有 24 列要取消透视,所以我希望能够扩展或添加列名称到 SQL代码自己展开。
我花了大约一天的时间尝试听取其他在这里提出过类似问题的人的建议,但不幸的是 SQL 经验很少,而且到目前为止都惨败。任何帮助将不胜感激!
谢谢!
您可以简单地使用 UNION ALL
如下:
SELECT ITEM, 'A' PERIOD, A AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'B' PERIOD, B AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'C' PERIOD, C AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'D' PERIOD, D AS FORECAST FROM YOUR_TABLE
大师下午好!
我希望有 Access 和 SQL 经验(和时间)的人能够编写一些 SQL 代码,我可以在 MS Access 中使用这些代码 transform/unpivot 一些数据.我想这有点像逆轴。
当前table“tbl_Weekly_Forecast”的结构如下;
Item | A | B | C | D |
-------------------------------
61000224 | 1 | 2 | 3 | 4 |
64000123 | 25 | 25 | 25 | 25 |
66400005 | 38 | 38 | 37 | 37 |
想要的查询输出是这样的;
Item | Period | Forecast |
-------------------------------
61000224 | A | 1 |
61000224 | B | 2 |
61000224 | C | 3 |
61000224 | D | 4 |
64000123 | A | 25 |
64000123 | B | 25 |
64000123 | C | 25 |
64000123 | D | 25 |
66400005 | A | 38 |
66400005 | B | 38 |
66400005 | C | 37 |
66400005 | D | 37 |
table“tbl_Weekly_Forecast”中实际上有 24 列要取消透视,所以我希望能够扩展或添加列名称到 SQL代码自己展开。
我花了大约一天的时间尝试听取其他在这里提出过类似问题的人的建议,但不幸的是 SQL 经验很少,而且到目前为止都惨败。任何帮助将不胜感激!
谢谢!
您可以简单地使用 UNION ALL
如下:
SELECT ITEM, 'A' PERIOD, A AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'B' PERIOD, B AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'C' PERIOD, C AS FORECAST FROM YOUR_TABLE
UNION ALL
SELECT ITEM, 'D' PERIOD, D AS FORECAST FROM YOUR_TABLE