Usuário com melhor resposta
Verificação de campos entre 2 tabelas

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.0000Executando a soma dessas linhas pelo comando:
select sum(valor*quantidade) from item_troca where idtroca = '321' and idestacao = '2964'
----------------------------------------
148.000000002) 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.0000Aqui 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
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
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] -
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.
-
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