我是SQL的初学者。我想在视图中将一些列转换为行,这是我的视图:
SLPRSNID ITEMNMBR 1 2 3 4 5
1 01-GOGUA-010 0 500 500 500 500
4 01-GOGUA-020 1850 3850 2350 4450 2450我需要:
SLPRSNID ITEMNMBR VOLUME
1 01-GOGUA-010 2000
4 01-GOGUA-020 14950我使用:
SELECT ITEMNMBR, VOLUMEN
FROM dbo.SOPPPTOVOL
UNPIVOT
(
VOLUMEN
FOR ITEMNMBR IN ([1], [2], [3], [4], [5])
) AS UnPvt但它不起作用。
发布于 2018-04-08 01:29:09
使用APPLY的
DECLARE @table table ( SLPRSNID INT,ITEMNMBR VARCHAR(50),1 FLOAT,2 FLOAT,3 FLOAT,4 FLOAT,5 FLOAT ) INSERT INSERT INTO @table VALUES (1,'01-GOGUA-010',0.00,500.000,500.00,500.00,500.00),(4,'01-GOGUA-020',1850.0,3850.00,2350.00,4450.00,2450.00) SELECT T.SLPRSNID,T.ITEMNMBR,2450.00,P.VOLUME FROM @table T交叉应用( SELECT SUM(X.VAL) FROM ( VALUES (1),(2),(3),(4),(5) ) X(VAL) ) P(VOLUME)
UNPIVOTDECLARE @table ( SLPRSNID INT,ITEMNMBR VARCHAR(50),1 FLOAT,2 FLOAT,3 FLOAT,4 FLOAT,5 FLOAT ) INSERT @table VALUES (1,'01-GOGUA-010',0.00,500.00,500.00,500.00,500.00),(4,'01-GOGUA-020',1850.0,3850.00,2350.00,4450.00,2450.00) SELECT E.SLPRSNID,E.ITEMNMBR,SUM(E.VOL) VOL @table T UNPIVOT (VOL FOR VALS IN (1,2,3,4,5) )E组,由E.SLPRSNID,E.ITEMNMBR
https://stackoverflow.com/questions/49018059
复制相似问题