Usuário com melhor resposta
Problema na criação de Stored

Pergunta
-
Oi pessoal.
Há um tempo atrás fiz uma Stored Procedure para pegar dados para um relatório. Nessa semana algumas coisas mudaram na empresa e o servidor foi para outro estado. Os encarregados pelo banco fizeram a implantação, mas as storeds eles não colocaram.
O problema é o seguinte, no nosso banco a stored compila, roda, funciona que é uma beleza. Mas quando pego o código e tento compilar no outro dá erro de sintaxe. Ai me pergunto, como seria possível dar erro de sintaxe somente ao mudar de servidor?
Colocarei o código da stored e também vou apontar onde o erro ocorre.
ALTER procedure [dbo].[sp_relatorioProducao]
@DATA_INI AS DATETIME,
@DATA_FIM AS DATETIME
AS
DECLARE @ID_SERVICO AS INT
DECLARE @DESCRICAO AS VARCHAR(30)
DECLARE @A_ENVIAR AS INT
DECLARE @ENVIADO AS INT
DECLARE @LEIDO AS INT
DECLARE @EQUIPO_OK AS INT
DECLARE @DESPLAZAMIENTO AS INT
DECLARE @INICIO_TRABAJO AS INT
DECLARE @SUSPENSION AS INT
DECLARE @REINICIO_TRABAJOS AS INT
DECLARE @CONCLUSION AS INT
DECLARE @ACEITACAO_CLIENTE AS INT
DECLARE @MIN_DATE AS DATETIME
DECLARE @MAX_DATE AS DATETIME
DECLARE @SUM_SERVICOS AS INT
DECLARE @CUR AS CURSOR
CREATE TABLE #RELATORIO
(
tb_servico_id int,
servico varchar(30),
min_date varchar(19), --datetime,
max_date varchar(19), --datetime,
a_enviar int,
enviado int,
leido int,
equipo_ok int,
desplazamiento int,
inicio_trabajo int,
suspension int,
reinicio_trabajos int,
conclusion int,
aceitacao_cliente int,
total_servicos int
)
SET @CUR = CURSOR FOR (select tb.tb_servico_id, s.descricao as servico, @DATA_INI AS inicio, @DATA_FIM as final,
count(tb.enviar) as a_enviar,
count(tb.enviado) as enviado,
count(tb.leído) as leido,
count(tb.equipo_ok) as equipo_ok,
count(tb.desplazamiento) as desplazamiento,
count(tb.inicio_trabajo) as inicio_trabajo,
count(tb.suspensión) as suspension,
count(tb.reinicio_trabalhos) as reinicio_trabajos,
count(tb.conclusión) as conclusion,
count(tb.aceitacao_cliente) as aceitacao_cliente
from tb_servicos s,
(select tb_servico_id, dt_inicio,
[1] enviar,
[2] enviado,
[3] leído,
[4] equipo_ok,
[5] desplazamiento,
inicio_trabajo,
[7] suspensión,
reinicio_trabalhos,
[9] conclusión,
[10] aceitacao_cliente
from tb_solicitacao
/* Erro na linha abaixo Incorrect sintax near '(' */
pivot (sum(tb_status_id) for tb_status_id in ([1],[2],[3],[4],[5],
,[7],
,[9],[10])) pvt
where dt_inicio between @DATA_INI and @DATA_FIM) tb
where tb.tb_servico_id = s.id
group by tb.tb_servico_id, s.descricao)
OPEN @CUR
(....... resto do código .......)
SET
@CUR = CURSOR FOR SELECT SUM([1]) AS F1, SUM([2]), SUM([3]), SUM([4]), SUM([5]), SUM(), SUM([7]), SUM(
), SUM([9]), SUM([10])
FROM tb_solicitacao
/* Em outro ponto da stored procedure Incorrect sintax near '(' */
PIVOT(COUNT(tb_status_id) FOR tb_status_id IN ([1], [2], [3], [4], [5],
, [7],
, [9], [10])) AS p
WHERE dt_inicio between @DATA_INI and @DATA_FIM
Respostas
Todas as Respostas
-
-
-
Alexandre,
Obrigado por me atentar. Eles me passaram a informação errada, é o 2000 mesmo. Se não tivesse me atentado a essa possibilidade talvez eu ficasse mais um bom tempo tentando descobrir.
Agora voltarei ao bom e velho cursor para substituir o pivot... hehehe...
Valeu cara.
-