0
表PURCHASE(PDate, ItemName, PQty, Rate)
SQL服务器:与计算的行一个选择查询后,另一
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
- 这里我们需要查看的剩余物品和他们的库存价格(PQty *费率)购买表售后。 (完成库存)
- 选择查询应该在这里执行该过程。
- 的购买表的PQty应该由一个,前一个,热门升序扣除一到底部的基础上,SALES表的 SQty 一个PDATE的升序底部的日期。
- PQty 购买表不应该成为0(零)这是当然。
- 柜面,如果PQty达到零,从购表人的 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
我怎样才能理清这个问题?
您能否提供消耗品格式的ddl和样品数据? sqlfiddle.com将是一个很好的开始。另外,定义“从上到下”。订单是什么?您提供的数据中没有任何内容可以获取发布的行的顺序。这听起来像它可能是一个正在运行的总问题,所以sql服务器的版本也将是重要的,因为在sql 2012之前和之后的做法差别很大。 –
从上到下是ASC订单日期。问题被编辑。 –
结果表中前3行的数量和ProductValue是什么意思? – shibormot