创建mysql查询以根据商品价格变化获得总销售额

时间:2015-01-16 11:57:00

标签: mysql join

我想创建一个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

1 个答案:

答案 0 :(得分:0)

草莓,你肯定的。我通过在单个销售项目表中添加一个外键来解决这个问题,这有助于我知道无论是价格上涨还是下降,我都能记录其价格,这是最初的噩梦。干杯。谢谢。 ;)