首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确使用Unpivot

如何正确使用Unpivot
EN

Stack Overflow用户
提问于 2018-02-28 05:15:03
回答 1查看 21关注 0票数 0

我是SQL的初学者。我想在视图中将一些列转换为行,这是我的视图:

代码语言:javascript
复制
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

我需要:

代码语言:javascript
复制
SLPRSNID    ITEMNMBR        VOLUME
1           01-GOGUA-010    2000
4           01-GOGUA-020    14950

我使用:

代码语言:javascript
复制
SELECT ITEMNMBR, VOLUMEN
FROM dbo.SOPPPTOVOL
UNPIVOT
(
    VOLUMEN
    FOR ITEMNMBR IN ([1], [2], [3], [4], [5]) 
) AS UnPvt

但它不起作用。

EN

回答 1

Stack Overflow用户

发布于 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)

  • Using UNPIVOT

DECLARE @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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49018059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档