计算MS Access中不同表的利润

时间:2016-01-11 11:50:30

标签: sql database ms-access ms-access-2007

我有两张桌子,Tbought和Tsold
Tbought包含我买的物品

  ID   |ItemName| PriceOfUnit  | NumberOfItems I bought |DateIBought| 
  1    |  tea   |       3      |            6           |15/11/2015 |
  2    | coffee |       5      |            4           |16/11/2015 |
  3    |  tea   |       3      |            10          |20/12/2015 |
  4    | juice  |       5      |            15          | 1/1/2016  |
  5    | coffee |       5      |            5           | 15/3/2016 |
  6    | water  |       5      |            2           | 16/4/2016 |

Tsold包含我卖的物品

  ID   |ItemName| PriceOfUnit  | NumberOfItems I sold   |total sold $|  PriceWhenBought| 
  1    | coffee |       7      |            6           |     30     |         5       |
  2    |  tea   |       5      |            9           |     45     |         3       |
  3    | coffee |       7      |            2           |     8      |         5       |
  5    | juice  |       6      |            11          |     55     |         5       |

如果我买了咖啡,单位的价格是5,那就是Tbought
 现在我把咖啡卖了7个my profit = 7 - 5 = 2
我需要计算利润,所以我认为我可以从Tbought获得单位价格 - 而不是再次在Tsold中再次进行 - 并在Tsold表中计算我的利润,如上所示 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以通过创建一个连接ItemName上的两个表的查询来执行此操作,然后您可以计算Profit: Tsold.PriceOfUnit - Tbought.PriceOfUnit之类的字段。

但是有一个问题:"咖啡"在Tbought中多次出现。如果查询不同,您的查询如何知道要使用哪个Tbought.PriceOfUnit

修改

然后你首先需要一个查询来计算每个项目的算术平均值,它看起来像这样:

SELECT ItemName, Sum([PriceOfUnit]) / Count(*) AS AvgPriceBought
FROM Tbought
GROUP BY ItemName

然后在ItemName上使用此查询加入Tsold,并添加如下查询字段:

Profit: Tsold.PriceOfUnit - QAvgBought.AvgPriceBought