AJUDA PARA MONTAR UMA QUERY
Bom dia amigos, venho pedir uma ajuda para montar uma query que não estou conseguindo:
Vou tentar explicar em detalhes para ficar mais fácil de entender:
Tenho uma tabela de Itens com esses registros:
Id | Descrição | CodItemForn | Unidade
1 | ProdutoA | 27185 | PC
2 | ProdutoB | 27800 | PC
3 | ProdutoC | 27913 | PC
E tenho uma tabela de Lançamentos com esses registros:
Id | Nota | CodForn | CodItemForn | CodInterno | CfopForn | CfopEntr | Fin | Unitario
1 | 415 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 125,00
2 | 415 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 125,00
3 | 33 | 1 | 27189 | 1010101 | 5102 | 1101 | 1.1 | 132,33
4 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
5 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
6 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
7 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
8 | 245 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 138,00
9 | 128 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 129,85
10 | 128 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 129,85
E tenho um formulário onde o usuário irá escolher um fornecedor e um código do item;
Preciso fazer um Select para encontrar todos os lançamentos feitos para esse Item desse Fornecedor;
Sendo que preciso fazer um Distinct para mostrar somente uma vez quando forem iguais os campos: Nota, CodInterno, CfopForn, CfopEntr e Fin;
E, ainda, fazer um Inner Join para pegar a descrição do Item.
O resultado seria esse:
Nota | CodForn | CodItemForn | Descrição | CodInterno | CfopForn | CfopEntr | Fin | Unitario
415 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 125,00
245 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 138,00
128 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 129,85
Se alguém puder me auxiliar nessa empreitada, agradeço muito. Estou tentanto aqui, mas por enquanto, sem sucesso.
Se conseguir algo, postarei.
Vou tentar explicar em detalhes para ficar mais fácil de entender:
Tenho uma tabela de Itens com esses registros:
Id | Descrição | CodItemForn | Unidade
1 | ProdutoA | 27185 | PC
2 | ProdutoB | 27800 | PC
3 | ProdutoC | 27913 | PC
E tenho uma tabela de Lançamentos com esses registros:
Id | Nota | CodForn | CodItemForn | CodInterno | CfopForn | CfopEntr | Fin | Unitario
1 | 415 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 125,00
2 | 415 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 125,00
3 | 33 | 1 | 27189 | 1010101 | 5102 | 1101 | 1.1 | 132,33
4 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
5 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
6 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
7 | 1916 | 2 | 000.138 | 1010101 | 5102 | 1101 | 1.1 | 131,00
8 | 245 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 138,00
9 | 128 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 129,85
10 | 128 | 1 | 27185 | 1010101 | 5102 | 1101 | 1.1 | 129,85
E tenho um formulário onde o usuário irá escolher um fornecedor e um código do item;
Preciso fazer um Select para encontrar todos os lançamentos feitos para esse Item desse Fornecedor;
Sendo que preciso fazer um Distinct para mostrar somente uma vez quando forem iguais os campos: Nota, CodInterno, CfopForn, CfopEntr e Fin;
E, ainda, fazer um Inner Join para pegar a descrição do Item.
O resultado seria esse:
Nota | CodForn | CodItemForn | Descrição | CodInterno | CfopForn | CfopEntr | Fin | Unitario
415 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 125,00
245 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 138,00
128 | 1 | 27185 | ProdutoA | 1010101 | 5102 | 1101 | 1.1 | 129,85
Se alguém puder me auxiliar nessa empreitada, agradeço muito. Estou tentanto aqui, mas por enquanto, sem sucesso.
Se conseguir algo, postarei.
Fiz aqui de cabeça e cheguei no seguinte resultado:
Se os campos podem mudar de valor para uma mesma nota, então você vai ter que agrupar por outros campos também:
OBS: Sua primeira tabela chamei de Produto e a outra chamei de Lancamento. Retirei também a acentuação do campo [Ô]Descrição[Ô].
Select Lancamento.Nota, Lancamento.CodForn, Lancamento.CodItemForn, Produto.Descricao, Lancamento.CodInterno, Lancamento.CfoForn, Lancamento.CfopEntr, Lancamento.Fin, Lancamento.Unitario from Produto, Lancamento Where Produto.CodItemForn = Lancamento.CodItemForn Group By Lancamento.Nota
Se os campos podem mudar de valor para uma mesma nota, então você vai ter que agrupar por outros campos também:
Select Lancamento.Nota, Lancamento.CodForn, Lancamento.CodItemForn, Produto.Descricao, Lancamento.CodInterno, Lancamento.CfoForn, Lancamento.CfopEntr, Lancamento.Fin, Lancamento.Unitario from Produto, Lancamento Where Produto.CodItemForn = Lancamento.CodItemForn Group By Lancamento.Nota, Lancamento.CodInterno, Lancamento.CfopForn, Lancamento.CfopEntrm, Lancamento.Fin
OBS: Sua primeira tabela chamei de Produto e a outra chamei de Lancamento. Retirei também a acentuação do campo [Ô]Descrição[Ô].
Valeu Jaba, funcionou direitinho, apenas fiz algumas adaptações e deu certo. Muito obrigado.
Até mais.
Até mais.
Tópico encerrado , respostas não são mais permitidas