none
Como fazer uma referencia cruzada no SQL Server RRS feed

  • Pergunta

  • Olá pessoal, boa noite.

    Gostaria de saber se existe a possibilidade de fazer um referencia cruzada em uma seguinte situaçao:

    Tenho um entidade chamada tb_movtos. Essa tb_movtos possui as seguintes colunas:
    - Movto_id      (INT)
    - Produto_id   (INT)
    - empresa_id, (INT) 

    - Movto_Id_Inverso (INT)
    - TIPO_MOVTO (E/S)

    Dentro desta tabela eu vou ter os registros de transferencias feitas entre as lojas, ou seja, os registros vao ficar assim:

    - Movto_id | produto_id | empresa_id | movto_id_inverso | Tipo_Movto
             1              50                  1                    2                             E

              2              50                 3                     1                            S

    Em resumo, os registros estarão da seguinte maneira: A loja de ID 1 recebeu da loja de ID 3 o produto 50.

    O que eu queria fazer era mostrar isso em uma linha só deixando o resultado da seguinte maneira:

    - produto_id | empresa_id_emitente | empresa_id_destino | 

          50                        3                                     1

    Quando eu faço, INNER, OUTER, LEFT, CROSS APLLY, ou qualquer outra função de junção, sempre aparece dois registros pois os IDs de Movto_id e Movto_id_inverso estão atrelhados.

    Desde já vlw....

     


    **** SER A RESPOSTA FOR UTIL, NÃO ESQUEÇA DE MARCA-LÁ =P ****

    sexta-feira, 14 de fevereiro de 2014 20:03

Respostas

  • Boa noite,

    Rafael, sempre existirão as 2 linhas? Se sim acho que poderia ser utilizado um Inner Join com uma condição na clausula Where. Ex:

    select
        e.produto_id,
        e.empresa_id as empresa_id_destino,
        s.empresa_id as empresa_id_emitente
    from tb_movtos as e
    inner join tb_movtos as s
        on s.movto_id = e.movto_id_inverso
    where
        e.tipo_movto = 'E'

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 14 de fevereiro de 2014 20:42