Ir para conteúdo

POWERED BY:

Arquivado

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

UsRogers

com select, nunca fiz isso "ainda"

Recommended Posts

Pessoal, preciso da ajuda de vocês, talvez seja primária minha dúvida, mas venho humildemente perguntar :D Tenho uma tabela de parametros, e essa tabela aceita de quase tudo, mas em um determinado select eu selecionava vários campos, dentre eles com suas respectivas ID's, como 1, 2, 3, e por aí vai.O problema é que em uma alteração que fiz, eu manipulo essa tabela em uma transação que ela atualiza um ID com um nome que deveria aparecer TAMBÉM nos outros selects. Por exemploEu seleciono Estado Civil, que tem dois, por exemplo - CASADO ou SOLTEIRO, isso na ID 1Só que na página de parâmetros eu alterei o "título"[campo] do casado para "CAS" por excemplo. Do tipo assim, o campo se chama CASADO na ID 1, mas na página eu quero que apareça "CAS" no select do ID 2 E no select que traz o nome CASADO, deveria aparecer "CAS", adotando o ID 2, caso ele seja alterado.Resumindo, eu altero uma ID na página de parametros, que ele tem que figurar de acordo como eu alterei nas páginas que esse parametro aparece, por exemplo:Aparece---------------alterei--------------deveria aparecerCASADO========CAS=========CASPreciso da ajuda de vocês e desculpem se não fui muito claro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, depois de trabalhar com um amigo aqui, o select ficou assim:CREATE PROCEDURE procSELECTASSelect TOG.XX_TABE as TOG_XX_TABE, TOG.XX_ATRB as TOG_XX_ATRB, isnull(THR.HY_PRM,TOG.HY_PRM) as HY_PRM, TOG.VL_PRM, TOG.WA_PRM, TOG.TX_PRM, TOG.TX_PRM_1from TB_TABELA TOG, TB_TABELA THRwhere right('00' + convert(varchar,TOG.XX_TABE),2) *= left(THR.XX_ATRB,2) and TOG.XX_ATRB *= right(THR.XX_ATRB, 17) and THR.XX_TABE = 30 AND THR.XX_AREA = 1 and THR.XX_ATRB <> '**' and THR.VL_PRM = 0 and TOG.XX_TABE between 1 and 19 and TOG.XX_TABE <> 17 and TOG.XX_ATRB <> '**' and TOG.XX_AREA = 1order by TOG.XX_TABE,HY_PRMGOSerá que dá pra melhorar isso? Assim, pra melhorar a performance?Muito obrigado,USrogers

Olá!Você teria como informar os campos da sua tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é...Não sei te responder. Minha experiência com melhoria de performance é bem empírica, "ad hoc": mudo alguma coisa na consulta, insiro algum índice e vou fazendo testes. Uma coisa que ouvi dizer é que, no caso do SQL Server, é melhor usar LEFT OUTER JOIN no lugar do operador *= .Ex: no lugar deSELECT tab1.*FROM tab1, tab2WHERE tab1.c1 *= tab2.c1seria preferível usarSELECT tab1.*FROM tab1 LEFT OUTER JOIN tab2 ON tab1.c1 = tab2.c1Talvez alguém do fórum possa melhorar essa informação.No mais, um abraço e boa sorte!

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.