【发布时间】:2014-07-24 05:55:48
【问题描述】:
我有 1 个这样的视图(PurchaseOrder 视图)
PONo Date ProductId Price Amount
PO 00001 01/07/2014 AS15 4.750 10.000
PO 00002 02/07/2014 AS15 4.000 100.000
PO 00003 05/07/2014 AS24 4.500 30.000
PO 00004 06/07/2014 AS19 4.250 80.000
PO 00005 08/07/2014 AS19 4.500 25.000
PO 00006 09/07/2014 AS15 4.750 15.000
PO 00007 11/07/2014 AS19 4.250 75.000
PO 00008 12/07/2014 AS24 4.000 95.000
以及销售视图的汇总(SalesSummary View)
ProductId AmountSale
AS15 35.000
AS19 88.000
AS24 50.000
我需要这样的表格/视图
PONo Date ProductId Price Amount AmountSale
PO 00001 01/07/2014 AS15 4.750 10.000 10.000
PO 00002 02/07/2014 AS15 4.000 100.000 25.000
PO 00003 05/07/2014 AS24 4.500 30.000 30.000
PO 00004 06/07/2014 AS19 4.250 80.000 80.000
PO 00005 08/07/2014 AS19 4.500 25.000 8.000
PO 00006 09/07/2014 AS15 4.750 15.000 -
PO 00007 11/07/2014 AS19 4.250 75.000 -
PO 00008 12/07/2014 AS24 4.000 95.000 20.000
前 5 个字段与 PurchaseOrderView 相同。
棘手的部分是如何获取 AmountSale。这个字段填充了 FIFO 逻辑
来自销售摘要
【问题讨论】:
-
您使用的是什么数据库?另外,你应该解释得到最终结果的逻辑。
-
谢谢戈登,你救了我的命。我使用ms access 2007,逻辑是按日期减去采购订单中相同产品的销售金额。旧的采购订单将首先扣除,然后处理到下一个采购订单。如果结果中的金额小于销售摘要中的金额。我可以说这就像库存的先进先出逻辑
-
我只是对新表执行 select into 语句并设置 amountale = 0。我需要逻辑以我想要的方式更新该表中的 AmountSale
-
我最好的建议基本上是放弃并切换到 SQL Server 2012/2014 express。在更好地支持 SQL 功能的数据库中,这种类型的查询要容易得多。
-
你能帮我解决上述问题的 SQL Server 逻辑吗?
标签: sql ms-access-2007