2016-11-27 5 views
-3

私はT-SQLのヘルプは

City Region  Zone Passcode SureveyBy SureveyDone SureveyExpiry 
Noida Sector 62 East 1   ABC   Y   NULL 
Noida Sector 2 West 1   XYZ   N   6/10/2016 
Delhi CP   Cnt  10   ABC   N   10/10/2018 
Delhi KB   West 11   RST   Y   NULL 

が、私はこの形式になり必要なテーブルが

Final Result

+0

ソーステーブルはCREATE TABLEをmytableは ( である必要があり、複数の列をピボットするために必要\t市varchar(50)、 \t地域varchar(50)、 \tゾーンはvarchar(10)、 \tパスコードはvarchar(50)、 \t SureveyBy \t VARCHAR(20)、 \t SureveyDoneのVARCHAR(5)、 \t SureveyExpiry日 ) –

答えて

0
DECLARE @col NVARCHAR(max),@sql NVARCHAR(max) 
    SELECT @col=ISNULL(@col+',[','[')+t.SureveyBy+']' FROM dbo.myTable AS t GROUP BY t.SureveyBy 
    PRINT @col 
    SET @sql=' 
     SELECT * FROM dbo.myTable 
     PIVOT(MAX(SureveyDone) FOR SureveyBy IN ('[email protected]+')) p' 
    EXEC(@sql)