pivot

实现动态行转列

DECLARE @cols AS NVARCHAR(MAX), @query  AS NVARCHAR(MAX);
if object_id('tempdb..##tmp1') is not null
begin
        DROP TABLE ##tmp1 
end
if object_id('tempdb..##tmp2') is not null
begin       
         DROP TABLE ##tmp2
end
;
with tmpdata as 
(      
        select  N'车线' as Id    
        union 
        select  N'刀模'as Id
        union 
        select  N'电压模' as Id
        union 
        select  N'扣凿模'as Id     
)
select *  into ##tmp1 from  tmpdata
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.id) 
            FROM ##tmp1 c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT  DATAAREAID, PRICECALCID, ' + @cols + ' into ##tmp2 from  
            (
                select PRICECALCID
                    , convert(decimal(16, 4),Price) as Price
                    , DATAAREAID
                    ,MisItemName
                from TEC_BOMCostMisCalc 
           ) x
            pivot 
            (
                sum(Price)
                for MisItemName in (' + @cols + ')
            ) p '
execute(@query)
select * from  ##tmp2 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值