【发布时间】:2026-01-25 18:40:01
【问题描述】:
我有一个产品表,其中包含字段产品、类别和成本,类型为 varchar、varchar 和小数。
然后我有一个销售表,其中包含字段 client、productname、quantity、cost 和 saledate,类型为 varchar、varchar、int、decimal 和 date。
我还有一个采购表,其中包含日期、十进制、varchar 和 varchar 类型的字段 purchaseate、cost、quantity 和 purchase。
在我的销售表中,给定记录的成本字段会自动乘以数量。
例如,如果啤酒成本为 10,并且在啤酒销售量的记录中为 2,则该记录的成本将自动为 20。
我想要做的是返回所有销售和购买自动分组的结果。
例如,如果我在sales表中有以下数据:
productname - quantity - cost- saledate
beer 2 20 2010-07-10
beer 3 50 2010-07-11
And in the purchases table:
purchasedate - cost - quantity - purchase
2010-07-09 20 2 straws
我想显示以下输出
当月总销售额:
productname - quantity - cost
beer 5 50
当月总购买量
purchasedate - cost - quantity - purchase
2010-07-09 20 2 straws
我正在尝试类似以下的方法:
Select category,SUM(Sales.Quantity),SUM(Sales.Quantity*cost) cost from
sales,products WHERE sales.product=products.name
AND category='food' AND month(date_field) = month(getdate()) group by category
但是,这首先不起作用,其次我认为它第二次将销售表中的成本字段相乘,使其不准确。
为了满足我的需要,我是否必须将产品表中的原始成本包括在内?
我可以在一个查询中做我想做的事吗,也许作为一个联合,按照我的例子返回相应的行和列?
【问题讨论】: