我想知道我的总购买量balace。
我有product_stock
表和product_purchase_item
表。
Product stock table
product_stock_id(int PK)
product_id(int)
product_size(int)
product_size_quantity(int)
Product purchase item
item_id(int PK)
product_id(int)
product_size(int)
pr_pur_cost_price(douple)
quantity
time_create(timestamp)
请注意product_size
和product_id
相同,product_stock.product_size_quantity
计算每种产品和尺寸的总数量。但是我的product_stock
表只存储了同一个product_id和product_size的一行(我使用了库存表的触发器)。例如,我三次购买了一个产品。
product_purchase_item table show
item_id product_id product_size pr_pur_cost quantity time_create
24 160 1 200 1 2013-09-21 20:18:55
502 160 1 150 4 2014-04-27 15:24:11
503 160 4 180 2 2014-04-27 18:54:45
404 100 2 200 1 2014-04-27 18:54:45
product_stock` table show
stock_id product_id product_size product_size_quantity
17 160 1 5
337 160 4 2
331 100 2 1
最后,我想要一个包含product_stock
表格的表格数据
平均成本价格为product_id
和product_size
我需要查询中的这类数据
product_id product_size product_size_quantity average_cost
160 1 5 175
160 4 2 180
100 2 1 200
此处,第1行显示175 average_cost
,因为160- product_id
和1 - product_size
包含总pr_pur_cost quantity
为350.我除以2因为2行
我该怎么做。我尝试使用group by
和join
。但我不能。我试着像
select
avg(i.pr_pur_cost_price) as cost,s.product_size,s.product_id
from
product_stock as s
left join
product_purchase_item as i
on
i.product_id=s.product_id
and
i.product_size=s.product_size
group by
i.product_size
但它不起作用
答案 0 :(得分:1)
像
这样的东西SELECT product_id,
product_size,
SUM(quantity) product_size_quantity,
AVG(pr_pur_cost)average_cost
FROM product_purchase_item
GROUP BY product_id, product_size
SELECT product_stock.product_id,
product_stock.product_size,
product_stock.product_size_quantity,
AVG(pr_pur_cost)average_cost
FROM product_stock INNER JOIN
product_purchase_item
ON product_stock.product_id = product_purchase_item.product_id
AND product_stock.product_size = product_purchase_item.product_size
GROUP BY
product_stock.product_id,
product_stock.product_size