桌子 PURCHASE(PDate, ItemName, PQty, Rate)
PDate | ItemName | PQty | Rate
============================================
01-04-2015 | Mobile Phone | 06 | 05,000
01-04-2015 | Laptop | 07 | 30,000
03-04-2015 | Mobile Phone | 03 | 06,000
04-04-2015 | Mobile Phone | 08 | 07,000
04-04-2015 | Laptop | 03 | 40,000
05-04-2015 | Mobile Phone | 05 | 04,000
桌子 SALES(SDate, ItemName, SQty)
SDate | ItemName | SQty
=================================
02-04-2015 | Mobile Phone | 02
03-04-2015 | Laptop | 03
03-04-2015 | Mobile Phone | 05
04-04-2015 | Mobile Phone | 07
04-04-2015 | Laptop | 03
06-04-2015 | Laptop | 02
SQL
- 在这里,我们需要在售后从PURCHASE Table中查看 Remaining Items 及其库存值 (PQty*Rate) 。(收盘)
- 选择查询应该在此处执行该过程。
- PURCHASE表的PQty 应该根据SALES 表的SQty一个一个,从上到下,从上到下按日期的升序,从上到下按PDate的升序扣除。
- PURCHASE Table的 PQty不应该变成 0(零),这是当然的。
- Incase,如果 PQty 达到零,则从列表中PURCHASE Table 的PQty的下一行中扣除剩余的SALES SQty。
- 如果没有更多行可用,则最后一行可能为负值。
- 表之间的条件完成WHERE SALES.ItemName LIKE PURCHASE.ItemName
桌子 EXPECTED SELECT QUERY RESULT (Date, ItemName, Qty, Rate, ProductValue)
PDate | ItemName | PQty | Rate | ProductValue
===========================================================
01-04-2015 | Mobile Phone | 00 | 05,000 | 0.00
01-04-2015 | Laptop | 00 | 30,000 | 0.00
03-04-2015 | Mobile Phone | 00 | 06,000 | 0.00
04-04-2015 | Mobile Phone | 03 | 07,000 | 21,000.00
04-04-2015 | Laptop | 02 | 40,000 | 80,000.00
05-04-2015 | Mobile Phone | 05 | 04,000 | 20,000.00
我该如何解决这个问题?