none
Verificação de campos entre 2 tabelas RRS feed

  • Pergunta

  • Boa tarde à todos.

     

    Estou com um problema há semanas e não consigo resolver.

    Preciso criar um JOB no MSSQL 2000 que faça o seguinte:

    1-) Verificar se a soma dos campos (valor*quantidade) da tabela (item_troca) é igual ao campo (Total) da tabela (cab_troca)

    2-) Comparar cada linha do cab_troca, se a linha retornar um resultado diferente da soma dos itens, calcular a soma dos itens para igualar ao campo total da tabela cab_troca.

    Exemplo Tabela ITEM_TROCA:

    select idTroca,idestacao,idmercadoria,valor,quantidade from item_troca where idtroca = '321' and idestacao = '2964'

     

    idTroca     idestacao idmercadoria    valor                 quantidade       
    ----------- --------- --------------- --------------------- -----------------
    321         2964      01743L          20.0000               3.0000
    321         2964      03678           18.0000               4.0000
    321         2964      09109           16.0000               1.0000

     

    Executando a soma dessas linhas pelo comando:

    select sum(valor*quantidade) from item_troca where idtroca = '321' and idestacao = '2964'

    ----------------------------------------
    148.00000000

     

    2) Comparar esse resultado com o campo TOTAL da tabela CAB_TROCA

    Exemplo da tabela CAB_TROCA

    select codigo,idestacao,total from cab_troca where idvenda_saida = '1861' and idestacao = '2964'

    codigo      idestacao total                
    ----------- --------- ---------------------
    321         2964      148.0000

     

    Aqui da pra ver que o total é igual a soma dos itens vezes suas quantidades.

    Caso não seja igual, como posso fazer para que ele corrija automaticamente a soma dos itens e faça o procedimento em todas as linhas que estão diferente, ou seja, um comando genérico pois nesse acima eu estou estipulando quais são os campos idestacao, idvenda_saida e idtroca, mas preciso que ele verifique um a um e corrija os que estiverem errados.

    Será que alguém consegue dar uma solução?

    Caso precise mais detalhes é só pedir.

    Att.

    Marcos

    sexta-feira, 18 de março de 2011 20:34

Respostas

  • SZeiko,

    Você poderia realizar o cálculo referente a primeira query, armazenar em uma variável e depois comparar esta variável com o valor da segunda query.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    • Marcado como Resposta Richard Juhasz segunda-feira, 28 de março de 2011 19:36
    quarta-feira, 23 de março de 2011 20:08
    Moderador

Todas as Respostas

  • Marcos,

    O primeiro passado seria desenvolver uma stored procedure para realizar esta análise!!!!

    A criação do job você saberia fazer?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 20 de março de 2011 00:39
    Moderador
  • Olá Junior.

    É exatamente isso que eu preciso.

    Sei sim criar o job e também a stp, a minha dúvida está no script que eu tenho que fazer para conseguir isso que eu preciso.

     

    Como eu declaro os campos e etc.

     

    Se precisar de mais informação estou a disposição.

    segunda-feira, 21 de março de 2011 13:23
  • SZeiko,

    Você poderia realizar o cálculo referente a primeira query, armazenar em uma variável e depois comparar esta variável com o valor da segunda query.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    • Marcado como Resposta Richard Juhasz segunda-feira, 28 de março de 2011 19:36
    quarta-feira, 23 de março de 2011 20:08
    Moderador