我想创建一个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
以上信息显示,2015年12月1日(货运日期)以1500的价格发货5对货物,2015年12月1日(saleDate)售出前2对,然后在13 / 01/2015(saleDate)。 之后,在16/01/2015(shipmentDate)以价格1700再次发生10对物品装运,并且在2015年1月18日(saleDate)售出2对。
查询应根据一段时间内有效的价格计算销售金额,即从一个出货日期到下一个出货日期活跃的价格。
从上面两个视图中可以看出最终结果:
SUM(price * saleQuantity - discount)
(1500 * 2 - 0) + (1500 * 1 - 100) + (1700 * 2 - 200) = 7600
最终结果:
sourceName saleAmount
Bata 7600
答案 0 :(得分:0)