1
« en: Martes 29 de Diciembre de 2009, 17:26 »
Encontre un codigo de un store procedure de sql server que es el siguiente:
CREATE procedure CrossTab (@Select varchar(1000),
@PivotCol varchar(100),
@Summaries varchar(100),
@GroupBy varchar(100),
@OtherCols varchar(100) = Null)
AS
set nocount on
set ansi_warnings off
declare @Vals varchar(8000);
set @Vals = '';
set @OtherCols= isNull(', ' + @OtherCols,'')
create table #temp (Pivot varchar(100))
insert into #temp
exec ('select distinct convert(varchar(100),' + @PivotCol + ') as Pivot FROM (' + @Select + ') A')
select @Vals = @Vals + ', ' +
replace(replace(@Summaries,'(','(CASE WHEN ' + @PivotCol + '=''' +
Pivot + ''' THEN '),')[', ' END) as [' + Pivot )
from #Temp
order by Pivot
drop table #Temp
EXEC ( 'select ' + @GroupBy + @OtherCols + @Vals +
' from (' + @Select + ') A GROUP BY ' + @GroupBy)
set nocount off
set ansi_warnings on
GO
los parametros que le paso al store procedure son las consultas de unas vistas que se generan dinamicamente mediante codigo en el programa de VB, despues el resultado del store procedure lo bajo a un table adapter para ligarlo a un grid y en el grid presento el reporte pero si quieres tambien lo puedes vaciar en un reporte de crystal reports con origen de datos mediante store procedure.
Espero te sirva de algo
Suerte........