2014-09-22 4 views
4

판매 :계산 비용은이 같은 다소 보는 두 개의 테이블, 수신 재고 하나 나가는 재고에 대한 하나가

   purchase (incoming) 
--------------+----------+-------+----------- 
inventory_id | quantity | price | timestamp 
--------------+----------+-------+----------- 
bobble  |  1 | $1.00 | 2014-01-01 
trinket  |  2 | $1.00 | 2014-01-02 
trinket  |  2 | $2.00 | 2014-01-03 
--------------+----------+-------+----------- 


       sale (outgoing) 
--------------+----------+-------+----------- 
inventory_id | quantity | price | timestamp 
--------------+----------+-------+----------- 
trinket  |  1 | $3.00 | 2014-01-04 
bobble  |  1 | $3.00 | 2014-01-05 
trinket  |  2 | $3.00 | 2014-01-06 
trinket  |  1 | $3.00 | 2014-01-07 
--------------+----------+-------+----------- 

이 같은 모습을 보이는 전망을 가지고 싶어요 :

       sale_with_cost_of_goods 
--------------+----------+-------------+------------+-----------+-----------+---------- 
inventory_id | quantity | total_price | timestamp | cogs_fifo | cogs_lifo | cogs_avg 
--------------+----------+-------------+------------+-----------+-----------+---------- 
trinket  |  1 |  $3.00 | 2014-01-04 |  $1.00 |  $2.00 | $1.50 
bobble  |  1 |  $3.00 | 2014-01-05 |  $1.00 |  $1.00 | $1.00 
trinket  |  2 |  $6.00 | 2014-01-06 |  $3.00 |  $3.00 | $3.00 
trinket  |  1 |  $3.00 | 2014-01-07 |  $2.00 |  $1.00 | $1.50 
--------------+----------+-------------+------------+-----------+-----------+---------- 

나는 아픈 곳 FIFO와 LIFO 쿼리가 나를 발로하는 총 가격 및 판매 제품의 평균 비용 만 처리 할 수 ​​있습니다.

이것은 합리적일까요 가능합니까? 어떤 도움이라도 대단히 감사하겠습니다.

+0

이 문제를 해결하는 방법은 실제로 테이블이 채워지는시기에 달려 있습니다. 구매 및 판매가 업데이트되어 각 행이 시간 순서대로 추가됩니까? 그들은 이미 채워져 있고 톱니 바퀴 데이터는 사실 이후입니까? – gwaigh

+0

판매 및 구매 표는 바로 끝에 추가됩니다. 마지막에 가장 최근에 추가됩니다. 그래서 지금 내가 다른 bobble을 구입한다면, 그것은 구매 테이블의 마지막 줄이 될 것입니다. 상품 계산 비용을 계산하는 방법은 뷰로 정의되므로 Calc에서 선택하면 계산이 즉시 수행됩니다. – zakm

답변

2

고객이 표준 원가 계산에서 재고에 대한 FIFO 원가 계산으로 이동했을 때 비슷한 문제가있었습니다. 내 솔루션은 입니다. 1. '나머지 수량'에 대한 구매 테이블에 열을 추가하십시오. 2. 매출 테이블에 'COGS'에 대한 열을 추가하십시오. 3. 판매 주문 출하 모듈의 코드를 수정하여 COGS 기반 계산 구매에서 가장 오래된 나머지 수량 (때로는 하나 이상의 행)에 동시에 남은 수량을 줄입니다. 그러면 모든 데이터가 판매 테이블에 있으므로 쿼리가 간단 해집니다.