使用 UNPIVOT 时格式化列
Formatting columns when using UNPIVOT
我有一个 table 具有以下结构
YEAR, MONTH, ITEM, REQ_1,REQ_2,REQ_3,,.....REQ_31
2015, 07, AAA, 100, 200, 300.......550
我想将它们反转为这种格式
ITEM, Date, Quantity
AAA,01-07-2015,100
AAA,02-07-2015,200
AAA,03-07-2015,300
.
.
AAA,31-07-2015,550
我可以使用以下语句使用 UNPIVOT 抓取数据
SELECT C.ITEM, CONVERT(DATETIME, (C.YEAR + C.MONTH + SUBSTRING(C.REQUIRED_DAY,8,2)),112) AS REQ_DATE,C.QUANTITY FROM
(SELECT B.YEAR, B.MONTH, B.ITEM, B.REQUIRED_DAY, B.QUANTITY
FROM C25KPPF A
UNPIVOT
(
QUANTITY FOR REQUIRED_DAY IN ([REQ_QTY1], [REQ_QTY2], [REQ_QTY3]....[REQ_QTY31])
) AS B
WHERE B.QUANTITY <> 0) C
问题是 - 我想避免在此处嵌套 select - 一个 select 用于逆轴,另一个 select 将其格式化为文本中的日期时间。
有没有办法将其合并到一个 select 语句中?
没关系 - 想通了。我在喝什么,我没有立即看到这个? ....DATETIMEFROMPARTS(C.YEAR,C.MONTH, SUBSTRING(C.REQUIRED_DATE,8,2),0,0,0,0)...... –
我有一个 table 具有以下结构
YEAR, MONTH, ITEM, REQ_1,REQ_2,REQ_3,,.....REQ_31
2015, 07, AAA, 100, 200, 300.......550
我想将它们反转为这种格式
ITEM, Date, Quantity
AAA,01-07-2015,100
AAA,02-07-2015,200
AAA,03-07-2015,300
.
.
AAA,31-07-2015,550
我可以使用以下语句使用 UNPIVOT 抓取数据
SELECT C.ITEM, CONVERT(DATETIME, (C.YEAR + C.MONTH + SUBSTRING(C.REQUIRED_DAY,8,2)),112) AS REQ_DATE,C.QUANTITY FROM
(SELECT B.YEAR, B.MONTH, B.ITEM, B.REQUIRED_DAY, B.QUANTITY
FROM C25KPPF A
UNPIVOT
(
QUANTITY FOR REQUIRED_DAY IN ([REQ_QTY1], [REQ_QTY2], [REQ_QTY3]....[REQ_QTY31])
) AS B
WHERE B.QUANTITY <> 0) C
问题是 - 我想避免在此处嵌套 select - 一个 select 用于逆轴,另一个 select 将其格式化为文本中的日期时间。
有没有办法将其合并到一个 select 语句中?
没关系 - 想通了。我在喝什么,我没有立即看到这个? ....DATETIMEFROMPARTS(C.YEAR,C.MONTH, SUBSTRING(C.REQUIRED_DATE,8,2),0,0,0,0)...... –