2017-11-14 8 views
0

나는 새 열을 만들고 그들을 피벗 동적 SQL을 사용하여 다음이 쿼리를 가지고,하지만 [MonthList] 필드에 연결된이며이 [Monthly Rate] 값 경우에만 [MonthList] = @PivotColumns 이름분할 연접에 대한이

을두고 어떻게 든 현재를 분할 할 필요 테이블의

예 : 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