2017-07-14 27 views
1

produced Table爲同一產品的多條記錄的MySQL獲得列的總和從兩個表

order_items table

我的要求是,以生產商品量的總和與銷售的項目數量。 我的查詢是

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 
    ) 

我怎樣才能得到正確的結果

+0

你計算累計售出價值WRT到第二隻表(項目),或者你需要的和值結合產品表? –

+0

我需要單獨總和的數量作爲total_produced和total_sold – Yasir

回答

2

試試這個

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 
+0

@Yasir你試過這個查詢嗎? –

+0

是的,它的工作。謝謝。 – Yasir

+0

歡迎您:) –

相關問題