Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Custeio de estoque primeiro a entrar, primeiro a sair (FIFO)


Sugiro projetar sua tabela como abaixo:Adicione um novo campo à sua tabela, ou seja, qty_out

A mesa antes de vender:
Item transaction code    qty     qty_out  price   
 apple   IN                    5    0        10.00    
 apple   IN                    3    0        20.00   
 apple   OUT                   6    null

E a mesa depois de vender os 6 itens:
Item    transaction code    qty     qty_out  price   
 apple   IN                    5    5        10.00    
 apple   IN                    3    1        20.00   
 apple   OUT                   6    null

Você pode comparar "qty" com "qty_out" (para transações IN) para descobrir o preço.