rodrigo.moraes Postado Abril 24, 2009 Denunciar Share Postado Abril 24, 2009 (editado) Srs,Estou com problema ao criar uma Stored Procedure baseada em um Select "Hard-Code" existente em um sistema legado.O banco de dados é Sybase.Minha dúvida está destacada abaixo:Exemplo de select:Parametros: flag1 char(1)Select a.campo1, b.campo2, c.campo3from tabela1 a ,tabela2 b ,tabela3 c If flag1 <> "" then <<<<------- dúvida ,tabela4 d End If Where --relacionamentos a.codigo = b.codigo and b.cod_x = c.cod_x If flag1 <> "" then <<<<------- dúvida and a.campo5 = d.codigo End IfOu seja, como fazer para a tabela4 só fazer parte do join de acordo com o parametro flag1.Agradeço desde já a ajuda. Editado Abril 24, 2009 por rodrigo.moraes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CAIO.EXE Postado Abril 25, 2009 Denunciar Share Postado Abril 25, 2009 cara no sql funcionou.....testa ai....IF FLAG1 <> '' BEGINSelect a.campo1, b.campo2, c.campo3from Tabela1 a, tabela2 b, tabela3 c, tabela4 dWhere a.codigo = b.codigo and b.cod_x = c.cod_x and a.campo5 = d.codigoENDELSE Select a.campo1, b.campo2, c.campo3from Tabela1 a, tabela2 b, tabela3 cWhere a.codigo = b.codigo and b.cod_x = c.cod_xabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Leonardo C. Cavalcante Postado Abril 27, 2009 Denunciar Share Postado Abril 27, 2009 Boa NoiteEu faria um pouco diferente.Declare @flag1 char(1)Selecta.Campo1,b.Campo2,c.Campo3from Tabela1 a INNER JOIN Tabela2 b ON (a.Codigo = b.Codigo) INNER JOIN Tabela3 c ON (b.Codigo = c.Codigo) LEFT JOIN Tabela4 d ON (a.Campo5 = d.Codigo and @flag1 = 'S')Espero ter ajudado Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo.moraes Postado Abril 28, 2009 Autor Denunciar Share Postado Abril 28, 2009 Boa NoiteEu faria um pouco diferente.Declare @flag1 char(1)Selecta.Campo1,b.Campo2,c.Campo3from Tabela1 a INNER JOIN Tabela2 b ON (a.Codigo = b.Codigo) INNER JOIN Tabela3 c ON (b.Codigo = c.Codigo) LEFT JOIN Tabela4 d ON (a.Campo5 = d.Codigo and @flag1 = 'S')Espero ter ajudado Abraços!PERFEITO!!! Agradeço a ajuda de todos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CAIO.EXE Postado Abril 29, 2009 Denunciar Share Postado Abril 29, 2009 Boa NoiteEu faria um pouco diferente.Declare @flag1 char(1)Selecta.Campo1,b.Campo2,c.Campo3from Tabela1 a INNER JOIN Tabela2 b ON (a.Codigo = b.Codigo) INNER JOIN Tabela3 c ON (b.Codigo = c.Codigo) LEFT JOIN Tabela4 d ON (a.Campo5 = d.Codigo and @flag1 = 'S')Espero ter ajudado Abraços!Boa Leonardo,mandou muito bem,realemente mais facil e com muito menos linha. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rodrigo.moraes
Srs,
Estou com problema ao criar uma Stored Procedure baseada em um Select "Hard-Code" existente em um sistema legado.
O banco de dados é Sybase.
Minha dúvida está destacada abaixo:
Exemplo de select:
Parametros:
flag1 char(1)
Select
a.campo1,
b.campo2,
c.campo3
from
tabela1 a
,tabela2 b
,tabela3 c
If flag1 <> "" then <<<<------- dúvida
,tabela4 d
End If
Where
--relacionamentos
a.codigo = b.codigo
and b.cod_x = c.cod_x
If flag1 <> "" then <<<<------- dúvida
and a.campo5 = d.codigo
End If
Ou seja, como fazer para a tabela4 só fazer parte do join de acordo com o parametro flag1.
Agradeço desde já a ajuda.
Editado por rodrigo.moraesLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.