Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

erro de sintaxe =

Recommended Posts

esse é minha proc

 

USE DBSRC_GLOBALGOIF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='SpSrcRelMapaCorporate')	DROP PROCEDURE SpSrcRelMapaCorporateGOCREATE PROCEDURE dbo.SpSrcRelMapaCorporate (			@CD_DIVISAO			 int,			@S136_CODIGO_FILIAL 	int,			@CD_GRUPO_ECONOMICO 	char(4),			@TP_VEICULO_LEGAL	   char(3),			@VR_COTACAO			 numeric(10,4))as																																																								   /*	 SISTEMA: SRC - Sistemas de Risco de Credito	ANALISTA: Rafael	DATABASE: DBSRC  ALTERACOES:	ALTERACAO		DATA			ANALISTA		MOTIVO		#1#		 18/2/2005	   Rafael		  Acrescimo dos campos DT_PROPOSTA e DT_REVISAO		#2#		 07/03/2006	  Alex			Formatar data para dd/mm/yyyy   		#3#		 13/03/2006	  Jaqueline	   Faltou o "as DT_PROPOSTA, AS DT_REVISAO" na alteraþÒo do Alex		#4#		 09/11/2006	  Rafael Martin   Migracao Global*/if @CD_DIVISAO = 0 select @CD_DIVISAO = nullif @S136_CODIGO_FILIAL = 0 select @S136_CODIGO_FILIAL = nullif @CD_GRUPO_ECONOMICO = '0000' select @CD_GRUPO_ECONOMICO = null-- Calcula Total de:--	Lim: se outstanding > 0 ou aprovada--	Esp: se outstanding > 0 ou (nao cancelada ou nao vencida)create table #TB_TEMP_UTILIZADO(	CD_GRUPO_ECONOMICO	char(4),	CD_PLC			  char(8),	DT_PROPOSTA		 smalldatetime,	-- #1#	DT_REVISAO		  smalldatetime,	-- #1#	CD_MOEDA			smallint,	TP_PROPOSTA		 char(3),	CD_STATUS_PLC		char(3),	TP_VEICULO_LEGAL	char(3),	VR_PROPOSTA		 numeric(25,2),	VR_UTILIZADO		numeric(25,2))insert #TB_TEMP_UTILIZADOselect a.CD_GRUPO_ECONOMICO,	   a.CD_PLC,	   coalesce(a.DT_PROPOSTA,'19000101'),	-- #1#	   coalesce(a.DT_REVISAO,'19000101'),	-- #1#	   a.CD_MOEDA,	   a.TP_PROPOSTA,	   a.CD_STATUS_PLC,	   a.TP_VEICULO_LEGAL,	   a.VR_PROPOSTA,	   VR_UTILIZADO = sum(isnull(e.VR_SALDO, 0) + isnull(f.VR_SALDO, 0))--from DBSRC..TB_PLC as a from DBSRC_GLOBAL..TB_PLC as a 					   /*inner join OPERACAO..S55_RESPONSAVEL b					   on b.S55_CODIGO_RESPONSAVEL = a.S55_CODIGO_RESP_OFFICER*/						   INNER JOIN DBGLOBAL..VWOFFICERMASTERCOMPLETO AS b								   ON B.CDFUNCIONARIO = a.CdPessoaFuncionarioOfficer						   inner join DBSRC..TB_LIMITE as c								   on c.CD_PLC = a.CD_PLC							left join DBSRC..TB_LIMITE_PRAZO as d								   on d.CD_LIMITE = c.CD_LIMITE							left join DBSRC..TB_SALDO_PARCELA as e								   on e.CD_PARCELA = d.CD_PARCELA								  and e.CD_OPERACAO = d.CD_OPERACAO							left join DBSRC..TB_SALDO_TITULO as f								   on f.DT_VENCIMENTO = d.DT_VENCIMENTO								  and f.CD_VEICULO = d.CD_VEICULO								  and f.CD_PAPEL = d.CD_PAPELwhere (a.CD_STATUS_PLC in ('02','03','04','07'))   and (a.TP_VEICULO_LEGAL = @TP_VEICULO_LEGAL)  and (a.S107_CODIGO_DIVISAO = @CD_DIVISAO or @CD_DIVISAO is null)  and (a.CD_GRUPO_ECONOMICO = @CD_GRUPO_ECONOMICO or @CD_GRUPO_ECONOMICO is null)  and (b.S136_CODIGO_FILIAL = @S136_CODIGO_FILIAL or @S136_CODIGO_FILIAL is null)group By 	a.CD_GRUPO_ECONOMICO, a.CD_PLC, a.DT_PROPOSTA, a.DT_REVISAO, 	a.CD_MOEDA, a.TP_PROPOSTA, a.CD_STATUS_PLC, a.TP_VEICULO_LEGAL, a.VR_PROPOSTA, a.CD_MOEDA	-- #1#having (sum(isnull(e.VR_SALDO, 0) + isnull(f.VR_SALDO, 0)) > 0	or (a.TP_PROPOSTA = 'LIM' and a.CD_STATUS_PLC in ('03','04'))	or (a.TP_PROPOSTA = 'ESP' and a.CD_STATUS_PLC not in ('02','07')))order by a.CD_GRUPO_ECONOMICO, a.Tp_Proposta DESC, a.CD_PLC/* ------------- *//* PLC de Limite *//* ------------- */-- Calcula em #TB_TEMP_VIG utilizado e disponivel, todos os status (inserts separados para organizacao)create table #TB_TEMP_VIG(	CD_GRUPO_ECONOMICO 	char(4),	CD_PLC			  char(8),	CD_MOEDA			smallint,	CD_STATUS_PLC		char(3),	VR_PROPOSTA		 numeric(25,2),	VR_UTILIZADO		numeric(25,2),	VR_DISPONIVEL		numeric(25,2) )	--PLC vigentesinsert #TB_TEMP_VIGselect CD_GRUPO_ECONOMICO,CD_PLC,CD_MOEDA,CD_STATUS_PLC,VR_PROPOSTA,0,0from #TB_TEMP_UTILIZADO where (TP_PROPOSTA = 'LIM')  and (CD_STATUS_PLC = '03' OR CD_STATUS_PLC = '04')--PLC vencidasinsert #TB_TEMP_VIGselect CD_GRUPO_ECONOMICO,CD_PLC,CD_MOEDA,CD_STATUS_PLC,VR_PROPOSTA,0,0from #TB_TEMP_UTILIZADO where TP_PROPOSTA = 'LIM'  and (CD_STATUS_PLC = '07')  and (CD_GRUPO_ECONOMICO not in (SELECT CD_GRUPO_ECONOMICO FROM #TB_TEMP_VIG))--PLC canceladasinsert #TB_TEMP_VIGselect CD_GRUPO_ECONOMICO,CD_PLC,CD_MOEDA,CD_STATUS_PLC,VR_PROPOSTA,0,0from #TB_TEMP_UTILIZADOwhere TP_PROPOSTA = 'LIM'  and (CD_STATUS_PLC = '02')  and (CD_GRUPO_ECONOMICO NOT IN (SELECT CD_GRUPO_ECONOMICO FROM #TB_TEMP_VIG))--Calcula em real os limites em dólarupdate #TB_TEMP_VIG set VR_PROPOSTA = VR_PROPOSTA * @VR_COTACAO where CD_MOEDA=2--Calculo o valor_utilizado(outstanding) agrupado por Grupo Economicocreate table #TB_TEMP_SOMA(	CD_GRUPO_ECONOMICO	char(4),	SOMA				numeric(25,2)) insert #TB_TEMP_SOMAselect CD_GRUPO_ECONOMICO,SUM(VR_UTILIZADO) from #TB_TEMP_UTILIZADO where TP_PROPOSTA = 'LIM'group by CD_GRUPO_ECONOMICO--Jogo em TB_TEMP_VIG.VR_UTILIZADO  o outstanding por Grupoupdate #TB_TEMP_VIGset VR_UTILIZADO = b.SOMAfrom #TB_TEMP_VIG a inner join #TB_TEMP_SOMA b							on b.CD_GRUPO_ECONOMICO = a.CD_GRUPO_ECONOMICO--Calculo TB_TEMP_VIG.VR_DISPONIVEL, somente das PLC Vigentesupdate #TB_TEMP_VIGset VR_DISPONIVEL = VR_PROPOSTA - VR_UTILIZADOwhere CD_STATUS_PLC = '03'   or CD_STATUS_PLC = '04'/* -------------- *//* PLC Especifica *//* -------------- */--Agora trata as específicascreate table #TB_TEMP_ESP(	CD_GRUPO_ECONOMICO	char(4),	CD_PLC			  char(8),	DT_PROPOSTA		 smalldatetime,	-- #1#	DT_REVISAO		  smalldatetime,	-- #1#	CD_STATUS_PLC		char(3),	VR_PROPOSTA		 numeric(25,2),	VR_UTILIZADO		numeric(25,2),	VR_DISPONIVEL 		numeric(25,2))insert #TB_TEMP_ESPselect CD_GRUPO_ECONOMICO,	   CD_PLC,	   DT_PROPOSTA,	-- #1#	   DT_REVISAO,	-- #1#	   CD_STATUS_PLC,	   VR_PROPOSTA = case					   when CD_MOEDA = 2 then VR_PROPOSTA * @VR_COTACAO					   else VR_PROPOSTA					 end,		VR_UTILIZADO,		0 from #TB_TEMP_UTILIZADOwhere TP_PROPOSTA = 'ESP'--Obter valor disponivelupdate #TB_TEMP_ESP set VR_DISPONIVEL = VR_PROPOSTA - VR_UTILIZADO--Gravar em tabela temporaria para facilitar manipulacao dos dadoscreate table #TB_TEMP_RESULT(	CD_PLC						  char(8),	DT_PROPOSTA					 smalldatetime,	-- #1#	DT_REVISAO					  smalldatetime,	-- #1#	CD_MOEDA						smallint,	TP_PROPOSTA					 char(3),	TP_VEICULO_LEGAL				char(3),	CD_STATUS_PLC				   char(3),	DS_STATUS_PLC				   char(50),	S107_CODIGO_DIVISAO			 numeric(18,0),	S107_NOME_DIVISAO			   varchar(35),	S55_CODIGO_RESP_OFFICER		 numeric(18,0),	S55_NOME_RESPONSAVEL			varchar(35),	S55_NOME_COMPLETO_RESPONSAVEL	varchar(100),	CD_GRUPO_ECONOMICO			  char(4),	DS_GRUPO_ECONOMICO			  varchar(60),	CD_CLIENTE					  char(8),	S00_CODIGO_PESSOA			   numeric(18,0),	S00_NOME_COMPLETO			   varchar(100),	VR_PROPOSTA					 numeric(25,2),	VR_UTILIZADO					numeric(25,2),	VR_DISPONIVEL				   numeric(25,2))insert into #TB_TEMP_RESULTselect '',	   '',	-- #1#	   '',	-- #1#	   a.CD_MOEDA,	   a.TP_PROPOSTA,	   a.TP_VEICULO_LEGAL,	   a.CD_STATUS_PLC,	   b.DS_STATUS_PLC,	   --a.S107_CODIGO_DIVISAO,	   --c.S107_NOME_DIVISAO,	   a.CDSEGMENTOMERCADO AS S107_CODIGO_DIVISAO,	   c.NmSegmentoMercado AS S107_NOME_DIVISAO,	   /*a.S55_CODIGO_RESP_OFFICER,	   S55_NOME_RESPONSAVEL = coalesce(d.S55_NOME_RESPONSAVEL,''),	   S55_NOME_COMPLETO_RESPONSAVEL = coalesce(d.S55_NOME_COMPLETO_RESPONSAVEL,''),*/	   a.CdPessoaFuncionarioOfficer,	   NMPESSOA = coalesce(d.NMPESSOA,''),	   NMFUNCIONARIO = coalesce(d.NMFUNCIONARIO,''),	   a.CD_GRUPO_ECONOMICO,	   e.DS_GRUPO_ECONOMICO,	   CD_CLIENTE = '',--	   S00_CODIGO_PESSOA = 0,--	   S00_NOME_COMPLETO = '',	   CDPESSOA AS S00_CODIGO_PESSOA = 0,	   --NMPESSOA AS S00_NOME_COMPLETO = '',	   VR_PROPOSTA = i.VR_PROPOSTA,	   VR_UTILIZADO = i.VR_UTILIZADO,	   VR_DISPONIVEL = i.VR_DISPONIVEL--from DBSRC..TB_PLC a inner join DBSRC..TB_STATUS_PLC bfrom DBSRC_GLOBAL..TB_PLC AS a 			inner join DBSRC..TB_STATUS_PLC as b				on b.CD_STATUS_PLC = a.CD_STATUS_PLC			 			/*inner join PESSOA..S107_TIPO_DIVISAO c				 on c.S107_CODIGO_DIVISAO = a.S107_CODIGO_DIVISAO*/			inner join DBGLOBAL..TBsegmentomercado as c				 on c.CDSEGMENTOMERCADO = a.CDSEGMENTOMERCADO		 			/*inner join OPERACAO..S55_RESPONSAVEL d				 on d.S55_CODIGO_RESPONSAVEL = a.S55_CODIGO_RESP_OFFICER*/ 			inner join DBGLOBAL..VWOFFICERMASTERCOMPLETO AS d				 on d.CDFUNCIONARIO = a.CdPessoaFuncionarioOfficer			inner join DBSRC..TB_GRUPO_ECONOMICO_CREDITO e				 on e.CD_GRUPO_ECONOMICO = a.CD_GRUPO_ECONOMICO			inner join DBSRC..#TB_TEMP_VIG i				 on i.CD_PLC = a.CD_PLCUNIONselect a.CD_PLC,	   coalesce(a.DT_PROPOSTA,'19000101'),	-- #1#	   coalesce(a.DT_REVISAO,'19000101'),	-- #1#	   a.CD_MOEDA,	   a.TP_PROPOSTA,	   a.TP_VEICULO_LEGAL,	   a.CD_STATUS_PLC,	   b.DS_STATUS_PLC,/*	   a.S107_CODIGO_DIVISAO,	   c.S107_NOME_DIVISAO,*/	   a.CDSEGMENTOMERCADO AS S107_CODIGO_DIVISAO,	   c.NmSegmentoMercado AS S107_NOME_DIVISAO,/*	   a.S55_CODIGO_RESP_OFFICER,	   S55_NOME_RESPONSAVEL = coalesce(d.S55_NOME_RESPONSAVEL,''),	   S55_NOME_COMPLETO_RESPONSAVEL = coalesce(d.S55_NOME_COMPLETO_RESPONSAVEL,''),*/	   a.CdPessoaFuncionarioOfficer AS S55_CODIGO_RESP_OFFICER,	   --NMPESSOA = coalesce(d.NMPESSOA,''),	   --d.NMPESSOA AS NOMEFUNCIONARIO,	   NMFUNCIONARIO = coalesce(d.NMFUNCIONARIO,''),	   a.CD_GRUPO_ECONOMICO,	   e.DS_GRUPO_ECONOMICO,	   f.CD_CLIENTE,/*	 S00_CODIGO_PESSOA = coalesce (g.S00_CODIGO_PESSOA, 0),	   S00_NOME_COMPLETO = coalesce(h.S00_NOME_COMPLETO,'EMPRESA ESTRANGEIRA/CLIENTE NÃO CADASTRADO'),*/	   CDPESSOA = coalesce (g.CDPESSOA, 0),	   NMPESSOA = coalesce(h.NMPESSOA,'EMPRESA ESTRANGEIRA/CLIENTE NÃO CADASTRADO'),	   VR_PROPOSTA = i.VR_PROPOSTA,	   VR_UTILIZADO = i.VR_UTILIZADO,	   VR_DISPONIVEL = i.VR_DISPONIVEL--from DBSRC..TB_PLC a from DBSRC_GLOBAL..TB_PLC a 			inner join DBSRC..TB_STATUS_PLC AS b				on b.CD_STATUS_PLC = a.CD_STATUS_PLC			/*inner join PESSOA..S107_TIPO_DIVISAO c				on c.S107_CODIGO_DIVISAO = a.S107_CODIGO_DIVISAO	*/			inner join DBGLOBAL..TBsegmentomercado AS c				on c.CDSEGMENTOMERCADO = a.CdSegmentoMercado	 			/*inner join OPERACAO..S55_RESPONSAVEL d				 on d.S55_CODIGO_RESPONSAVEL = a.S55_CODIGO_RESP_OFFICER*/ 			 inner join DBGLOBAL..VWOFFICERMASTERCOMPLETO AS d				 on d.CDFUNCIONARIO = a.CdPessoaFuncionarioOfficer			 inner join DBSRC..TB_GRUPO_ECONOMICO_CREDITO AS e					 on e.CD_GRUPO_ECONOMICO = a.CD_GRUPO_ECONOMICO			 inner join DBSRC..TB_LIMITE f					 on f.CD_PLC = a.CD_PLC			 left join DBSRC..TB_CLIENTE_CREDITO g				 on g.CD_CLIENTE = f.CD_CLIENTE/*			 left join PESSOA..S00_PESSOA h				 on h.S00_CODIGO_PESSOA = g.S00_CODIGO_PESSOA*/			 left join DBGLOBAL..TBPESSOA AS h				 on h.CDPESSOA = g.CDPESSOA			 inner join DBSRC..#TB_TEMP_ESP i					 on i.CD_PLC = a.CD_PLC--Gravar apenas PLCs especificas e PLCs de limite com valor utilizadoselect CD_GRUPO_ECONOMICOinto #tmp2from #TB_TEMP_RESULTwhere (TP_PROPOSTA = 'ESP')   or (TP_PROPOSTA = 'LIM' and VR_UTILIZADO > 0)group by CD_GRUPO_ECONOMICO--Trazer PLCs de Limite somente quando houver valor utilizado ou estiver vinculado a alguma PLC espec--select a.CD_PLC, convert(varchar(12), a.DT_PROPOSTA,103) as DT_PROPOSTA, convert(varchar(12),  a.DT_REVISAO,103) as DT_REVISAO, a.CD_MOEDA, a.TP_PROPOSTA, a.TP_VEICULO_LEGAL, a.CD_STATUS_PLC, a.DS_STATUS_PLC, a.S107_CODIGO_DIVISAO, a.S107_NOME_DIVISAO, a.select 	a.CD_PLC, convert(varchar(12), a.DT_PROPOSTA,103) as DT_PROPOSTA, convert(varchar(12),  	a.DT_REVISAO,103) as DT_REVISAO, a.CD_MOEDA, a.TP_PROPOSTA, a.TP_VEICULO_LEGAL, a.CD_STATUS_PLC, 	a.DS_STATUS_PLC, a.S107_CODIGO_DIVISAO, a.S107_NOME_DIVISAOfrom 	#TB_TEMP_RESULT a 		inner join #tmp2 b			on b.CD_GRUPO_ECONOMICO = a.CD_GRUPO_ECONOMICOorder by 		a.S107_NOME_DIVISAO, a.DS_GRUPO_ECONOMICO, a.TP_PROPOSTA DESC, a.CD_PLCat isolation 0																																															  goGRANT EXECUTE ON SpSrcRelMapaCorporate TO CREDITOGO

dá esse erro: Error: Incorrect syntax near '='.

 

se alguém puder me dizer onde está o erro, agradeço

 

pq virei essa proc de ponta cabeça e naum achei nenhum erro nesse proc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rafa-martin,No QueryAnalizer dê um duplo clic no erro que o cursor vair para na linha do erro, as vezes pode facilitar.Sugiro você diminuir a sp e ir acrescentando a clausulas aos poucos.Jothaz

Compartilhar este post


Link para o post
Compartilhar em outros sites

o Erro está nesta linha.. CDPESSOA AS S00_CODIGO_PESSOA = 0,você faz um select , qual campo você quer q tenha valor 0?você pode usar assim: CDPESSOA = 0,OU S00_CODIGO_PESSOA = 0,T+++

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.