[英]MySQL get sum of columns from two tables having multiple records of same product
我的要求是獲取生產項目數量和銷售項目數量的總和。 我的查詢是
select productions.created_at,
produced.expiry_date,
items.id as item_id,
items.quantity as
sold_quantity,
items.product_price as sailing_price,
sum(produced.quantity) as total_produced,
sum(items.quantity) as total_sold
from productions inner join produced_products as produced
on produced.production_id = productions.id
inner join store_order_items as items
on items.product_keeping_id = produced.keeping_id
group by produced.keeping_id, items.product_keeping_id
該查詢返回
[0] => Array ( [created_at] => 2017-07-13 10:25:52 [expiry_date] => 2017-07-31 [item_id] => 2 [sold_quantity] => 1.00 [sailing_price] => 120 [total_produced] => 6.000 [total_sold] => 2.00 )
[1] => Array ( [created_at] => 2017-07-07 13:30:25 [expiry_date] => 0000-00-00 [item_id] => 3 [sold_quantity] => 1.00 [sailing_price] => 120 [total_produced] => 16.000 [total_sold] => 4.00 )
這些記錄是錯誤的。 它應該返回
[0] (
[total_sold] => 1
),
[1] (
[total_sold] => 1
)
我怎樣才能得到正確的結果
試試這個
select productions.created_at,
produced.expiry_date,
items.id as item_id,
items.quantity as sold_quantity,
items.product_price as sailing_price,
sum(produced.quantity) as total_produced,
(SELECT sum(t1.quantity) FROM `store_order_items` as t1 where t1.product_keeping_id = produced.keeping_id ) as total_sold
from productions inner join produced_products as produced
on produced.production_id = productions.id
inner join store_order_items as items
on items.product_keeping_id = produced.keeping_id
group by produced.keeping_id, items.product_keeping_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.