Dynamic Pivot Function - SQL

S.Elgar

I'm having a small issue which I believe is to do with my STUFF Function. The below query gives the below print which has a comma before the initial column after the IN.

QUERY:

DECLARE @Columns    nvarchar(max); 
DECLARE @sql        nvarchar(max); 
SET     @Columns = N'' ; 
SELECT  @Columns += N' , p. '+ QUOTENAME(FiscalWeek) 
    FROM 
        (   SELECT FiscalWeek
            FROM MI.dbo.UtilisationSummary_Weekly  
            WHERE   MaxDate > dateadd(ww,-8, getdate())     ) AS x; 

SET @sql = N' SELECT Fee_Earner, '+ STUFF(@columns, 1,2, '') +' 
                FROM    
                        (   SELECT Fee_Earner, WeeklyUtilisation,  FiscalWeek
                            FROM    MI.dbo.UtilisationSummary_Weekly  
                            WHERE   MaxDate > dateadd(ww, -8, getdate() )) AS SourceTable   
                PIVOT   ( Sum(WeeklyUtilisation) FOR FiscalWeek IN (
                            ' + STUFF(REPLACE(@columns, ' p.[', '['), 1 , 1 ,'') +' ) )
                AS p;'; 
PRINT @sql 
EXEC sp_executesql @sql 

PRINTED RESULTS:

SELECT Fee_Earner,  p. [40] , p. [41] , p. [42] , p. [43] , p. [44] , p. [45] , p. [46] , p. [47] , p. [48] 
                FROM    
                        (   SELECT Fee_Earner, WeeklyUtilisation,  FiscalWeek
                            FROM    MI.dbo.UtilisationSummary_Weekly  
                            WHERE   MaxDate > dateadd(ww, -8, getdate() )) AS SourceTable   
                PIVOT   ( Sum(WeeklyUtilisation) FOR FiscalWeek IN (
                            , p. [40] , p. [41] , p. [42] , p. [43] , p. [44] , p. [45] , p. [46] , p. [47] , p. [48] ) )
                AS p;
PSK

You have a space before ,, STUFF is removing space not comma.

Change following line

SELECT  @Columns += N' , p. '+ QUOTENAME(FiscalWeek)

to

SELECT  @Columns += N', p. '+ QUOTENAME(FiscalWeek)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL PIVOT with dynamic header

分類Dev

SQL Pivot with dynamic generated columns, aggregate function and columns without aggregation

分類Dev

Trouble with SQL Server Dynamic Pivot

分類Dev

SQL Server 2012 Pivot Dynamic with Values?

分類Dev

SQL Server Dynamic Pivot Column Names

分類Dev

sql server - transforming data with dynamic pivot

分類Dev

How to SQL PIVOT on two columns and with dynamic column names?

分類Dev

how to calculate Percentage from Dynamic Pivot Query in Sql

分類Dev

Dynamic Pivot Table by Month

分類Dev

MySQL dynamic pivot table

分類Dev

dynamic pivot for non aggregate

分類Dev

Oracle SQL Developer: How to transpose rows to columns using PIVOT function

分類Dev

Execute Stored Procedure or Dynamic SQL in a Function

分類Dev

Syntax error in dynamic SQL in pl/pgsql function

分類Dev

U-SQL Dynamic Table Value Function

分類Dev

SQL Pivot on varchar columns

分類Dev

SQL Pivot data by time

分類Dev

Sql server pivot solution

分類Dev

SQL Pivot IF EXISTS

分類Dev

PHP script for PIVOT in SQL

分類Dev

SQL With Joins and Pivot

分類Dev

Call a Stored Procedure or Function from Dynamic SQL - with Nullable Parameter

分類Dev

pivot or un pivot sql server2005

分類Dev

How to group pivot dynamic array in javascript or MySQL?

分類Dev

Aggregating the columns resulted by PIVOT function

分類Dev

SQL Server 2012 Pivot Table

分類Dev

inner join with pivot condition sql

分類Dev

Pivot my sql rows into columns

分類Dev

Salesforce Marketing Cloud SQL PIVOT