Ir para conteúdo

Arquivado

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

evandropaulogazola

Abater valor linha a linha de um Select

Recommended Posts

Buenas moçada,
Trabalho em uma empresa de distribuidora de produtos, onde os pedidos são inseridos com vários itens, e tenho criar um relatório para automatizar um processo de abastecimento de produtos para a separação dos pedidos. Hoje isso é feito em um Excel com várias planilhas, para criar o relatório automatizado, preciso da seguinte ajuda:

Primeira coisa, tenho duas tabelas temporárias:

@TabelaA Table -> Onde leio todas as posições de estoque que tenho, por item (Item, Endereço, QuantEstoque)
@TabelaB Table -> Busco os itens dos pedidos separado por pedido (Item, Pedido, QuantSolicitada)

Após ter esses dados, aparece a dificuldade.
Na @TabelaB que são itens de pedido, vamos dizer que tenho 3 linhas por exemplo:

Campos (Item, Pedido, QuantSolicitada)

Linha1 ('Caneta', 1111, 3)

Linha2 ('Caneta', 2222, 2)

Linha3 ('Caneta', 3333, 8)

Na @TalelaA, que são as quantidades em estoque, vamos dizer que tenho essa caneta em dois endereços:
Campos (Item, Endereço, QuantEstoque)

Linha1 ('Caneta',EndereçoA1, 7)

Linha2 ('Caneta',EndereçoA22,18)

Agora no relatório tenho que exibir a junção dessas duas tabelas com as seguintes informações:

CAMPOS (Pedido, Item, QuantSolicitada, EndereçoSerBuscado, QuantEndereço, saldoEndereco)
Linha1 (1111,'Caneta', 3, EndereçoA1, 7, 4) -- Nessa linha, só abater as 3 solicitado
Linha2 (2222,'Caneta',2,EnderecoA1, 4, 2) -- Nessa linha busca o saldo da linha anterior, e abate as 2 unidades
Linha3 (3333,'Caneta',8,EnderecoA1,2,0) -- Nessa linha busca o saldo da linha anterior, abate a quantidade de 2 unidades
Linha4 (3333,'Caneta',6,EnderecoA22,6,12) -- Nessa linha busca os saldos da linha anterior, e abate as 6 unidades

Ou seja, vou ficar usando os saldos da linha de cima do SELECT e abatendo. Claro, sempre dentro do mesmo item.
Se trocar o item, começa com o saldo do endereço normalmente.

Como posso fazer isso?

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,
Consegui resolver minha dúvida, usando o "Row_number": ROW_NUMBER() OVER (ORDER BY Campo1) as LinhaRegistro

Com isso criei uma tabela temporária, e adicionei essa coluna "LinhaRegistro".
Após inserir na tabela temporária, trabalho nela e consigo fazer meus cálculos utilizando como parâmetro a linha do registro anterior ao atual.

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.