【发布时间】:2015-01-16 11:56:59
【问题描述】:
我想创建一个 mysql 查询以根据其来源获取总销售额,但价格可能会发生变化 即价格上涨或价格下跌。
我的数据库表是:
items(itemId,itemSize,itemColor,.......)
prices(priceId,presentPriceBoolean,priceDate,itemPrice,items_itemId)
shipments(shipmentId,shipmentPairs,shipmentDate,items_itemId,sources_sourceId)
sales(saleId,sellByCashier,saleDate)
soldItems(soldItemId,soldItemType,quantitySold,discount,items_itemId,sales_saleId)
sources(sourceId,sourceName,......)
例如:
查看:物品的装运
itemId shipmentDate shipmentQuantity Price Source
1 12/01/2015 5 1500 Bata
1 16/01/2015 10 1700 Bata
视图:商品销售
itemId saleQuantity Discount SaleDate Source
1 2 0 12/01/2015 Bata
1 1 100 13/01/2015 Bata
1 2 200 18/01/2015 Bata
以上信息显示 5 双商品于 2015 年 1 月 12 日(shipmentDate)以 1500 的价格发货,前 2 对在 2015 年 12 月 1 日(saleDate)售出,然后 1 对在 13/ 售出01/2015(销售日期)。 后来,10 双商品于 2015 年 1 月 16 日(发货日期)再次以 1700 的价格发货,2 对在 2015 年 1 月 18 日(销售日期)售出。
查询应根据一段时间内有效的价格计算销售金额,即从一个发货日期到下一个发货日期的有效价格。
从上面两个视图可以看出,最终的结果是这样的:
SUM(price * saleQuantity - discount)
(1500 * 2 - 0) + (1500 * 1 - 100) + (1700 * 2 - 200) = 7600
最终结果:
sourceName saleAmount
Bata 7600
【问题讨论】:
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做(您还没有这样做),请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更容易地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
-
我知道我在寻找什么。感谢您的考虑。 :)
-
在这种情况下,您可以提交下面的答案或删除此问题吗?干杯。