2017-11-14 12 views
0

私は新しい列を作成し、それらを旋回するように、動的SQLを使用して、以下のクエリを持っている、しかし[MonthList]フィールドが連結され、それが[Monthly Rate]値の場合のみ[MonthList] = @PivotColumns名前分割連結FORが

を置く何とかとして、現在、それを分割することが必要となりますテーブルの

例: enter image description here

現在のコード:

Set @SQLQuery = 
    N'SELECT * 
    FROM [dbo].[TableA] 
    PIVOT(sum([Monthly Rate]) 
FOR [MonthsList] IN (' + @PivotColumns + ')) as P' 

EXEC sp_executesql @SQLQuery 

が助けてくれてありがとう!

答えて

0

カーソルを使用して回答を出してください。誰でも興味があればどうすればいいのですか:

DECLARE @Q NVARCHAR(4000), 
@CName VARCHAR(255) 

DECLARE ColCur CURSOR 
FOR 
SELECT C.name as Column_name 
FROM sys.columns C 
LEFT JOIN sys.tables t 
on C.object_id = t.object_id 
WHERE t.name = 'TableA' 

OPEN ColCur 

FETCH NEXT FROM ColCur INTO @CName 


WHILE(@@FETCH_STATUS =0) 
BEGIN 

SET @Q = 
case when @CName like '___''__' then 
'UPDATE TableA 
SET ['[email protected]+'] = [Monthly Rate] 
WHERE [MonthsList] like ''%'+replace(@CName,char(39),char(39)+char(39))+'%''' 
Else '' 
end 
--print @q 
EXEC sp_executesql @Q 

FETCH NEXT FROM ColCur INTO @CName 

END 

CLOSE ColCur 
DEALLOCATE ColCur 
関連する問題