2011-03-07 218 views
0

我有這個MySQL的聲明,正常工作:嵌套的MySQL查詢?

SELECT claim_items.item_id, claim_items.quantity*items_rate.rate as per_item 
FROM claim_items, items_rate 
WHERE claim_items.claim_id = 1 AND claim_items.item_id = items_rate.items_id 

但是我想要做的是讓在MySQL語句生成的per_item場的總和。是否有可能做一個嵌套語句來做到這一點?我知道我可以創建一個視圖然後做,但是寧願在一個聲明中這樣做。

感謝您的幫助,非常感謝!

回答

1

如果你只是希望所有行的總和,你可以那樣做(用明確連接以提高可讀性):

SELECT SUM(claim_items.quantity * items_rate.rate) 
FROM claim_items 
JOIN items_rate ON (items_rate.items_id = claim_items.item_id) 
WHERE claim_items.claim_id = 1 
+0

謝謝,確實看起來更好:) – AzaraT 2011-03-07 12:44:27

2
select t.id, SUM(t.per_item) 
from 
(
SELECT claim_items.item_id as id, claim_items.quantity*items_rate.rate as per_item 
FROM claim_items, items_rate 
WHERE claim_items.claim_id = 1 AND claim_items.item_id = items_rate.items_id 
) t 
group by t.id 

希望這應該有所幫助。

+0

感謝那些幫助,我刪除了ID,但因爲否則它不會計算總和:) – AzaraT 2011-03-07 12:30:41