Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

First-in-first-out (FIFO) Bestandskalkulation

Ich schlage vor, Ihre Tabelle wie folgt zu gestalten:Fügen Sie Ihrer Tabelle ein neues Feld hinzu, z. B. qty_out

Die Tabelle vor dem Verkauf:

Item transaction code    qty     qty_out  price   
 apple   IN                    5    0        10.00    
 apple   IN                    3    0        20.00   
 apple   OUT                   6    null

Und die Tabelle nach dem Verkauf der 6 Artikel:

Item    transaction code    qty     qty_out  price   
 apple   IN                    5    5        10.00    
 apple   IN                    3    1        20.00   
 apple   OUT                   6    null

Sie können "qty" mit "qty_out" (für IN-Transaktionen) vergleichen, um den Preis herauszufinden.