Buenas
Intentare explicarme.
1 ordenador con MSDE2000. utilizo un almacenado que me devuelve una
crosstab. (lo encontre en los foros)
2 ordenador con SQLEXPRESS
Si al ordenador del SQLEXPRESS, le pongo una de las BD del MSDE, me permite
ejecutar el almacenado, si creo la BD directamente en el SQLEXPRESS, no me
funciona, podeis darme alguna pista?
Este es el almacenado
CREATE PROCEDURE crosstab
@select varchar(8000),
@sumfunc varchar(100),
@pivot varchar(100),
@table varchar(100)
AS
DECLARE @sql varchar(8000), @delim varchar(1)
SET NOCOUNT ON
SET ANSI_WARNINGS OFF
EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table +
' WHERE 1=2')
EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' +
@table + ' WHERE '
+ @pivot + ' Is Not Null')
SELECT @sql='', @sumfunc=stuff(@sumfunc, len(@sumfunc), 1, '
END)' )
SELECT @delimÊSE Sign( CharIndex('char',
data_type)+CharIndex('date', data_type) )
WHEN 0 THEN '' ELSE '''' END
FROM tempdb.information_schema.columns
WHERE table_name='##pivot' AND column_name='pivot'
Error -> SELECT @sql=@sql + '''' + convert(varchar(100), pivot) + '''
= ' +
stuff(@sumfunc,charindex( '(', @sumfunc )+1, 0, ' CASE ' + @pivot +
' WHEN '
+ @delim + convert(varchar(100), pivot) + @delim + ' THEN ' ) + ', '
FROM ##pivot
DROP TABLE ##pivot
SELECT @sql=left(@sql, len(@sql)-1)
SELECT @select=stuff(@select, charindex(' FROM ', @select)+1, 0, ',
' + @sql + ' ')
EXEC (@select)
Gracias por llegar hasta aqui
Leer las respuestas