• here is the Dynamic_Pivot Procedure

    CREATE procedure [dbo].[DYNAMIC_PIVOT]

    (

    @select varchar(max),

    @PivotCol varchar(max),

    @Summaries varchar(max)

    ) as

    declare @pivot varchar(max), @sql varchar(max)

    select @select =replace(@select,'select ','select '+@PivotCol+' as pivot_col,')

    create table #pivot_columns (pivot_column varchar(max))

    Select @sql='select distinct pivot_col from ('+@select+') as t'

    insert into #pivot_columns

    exec(@sql)

    select @pivot=coalesce(@pivot+',','')+'['+pivot_column+']'from #pivot_columns

    select @sql=

    '

    select * from

    (

    '+@select+'

    ) as t

    pivot

    (

    '+@Summaries+' for pivot_col in ('+@pivot+')

    ) as p

    '

    exec(@sql)