2010-12-17 62 views
0

我有點卡在我很確定是一個簡單的解決方案。這裏的兩難境地:結合兩個表按成本減去開支排序 - 需要通過聲明來進行復雜的排序?

我有兩個MySQL表:

一個汽車(與car_price_purchase每個car_id/car_price_sold) 一個是費用(與連接到汽車的每個費用 - expense_amount,expense_car_id)

我需要做的是將每輛車的所有費用加起來,然後減去加上爲購買價格而售出的價格,以獲得總體利潤。

這一般很容易做,但是我想按最終利潤額排序。

我只是將這些結果存儲在一個數組中,然後對該數組進行排序? 或者我可以編寫一個複雜的加入mysql查詢與一個更復雜的順序由聲明??

任何幫助表示讚賞。 謝謝 尼古拉斯

回答

1

你目前正在做數學來確定最終利潤額作爲查詢的一部分,或者以後在php中?我建議做數學作爲查詢的一部分,可以讓你通過那裏做的順序,即:

SELECT c.car_id, 
(c.car_price_sold - (IFNULL(SUM(e.expense_amount), 0) + c.car_price_purchase)) as profit 
FROM cars c 
LEFT JOIN expenses e ON e.expense_car_id = c.car_id 
GROUP BY c.car_id 
ORDER BY profit 
+0

喜keylan,我從來沒有這樣寫SELECT語句。我需要引用變量中的表嗎? expenses.expense_amount我認爲你的收入很接近,但是我需要首先從一張表中總結所有費用,然後減去購買的汽車價格出售的汽車價格。我發現這個使用groupby看起來很有前途的其他代碼: – nicopablo 2010-12-17 22:50:37

+0

我需要查看模式才能寫出確切的查詢,但是 - 您需要加入表和組以獲取您正在查找的利潤總額,以便您然後可以按該字段排序。 – Keylan 2010-12-17 22:56:31

+0

以下是表格和字段:汽車(car_id,car_price_purchase,car_price_sold)費用(expense_id,expense_amount,expense_car_id)。 – nicopablo 2010-12-17 22:58:02

0

這裏是我發現,看起來很有希望小組由代碼:

SELECT user_1.username, Count(user.refid) AS CountOfrefid 
FROM [user] LEFT JOIN [user] AS user_1 ON user.refid = user_1.userid 
GROUP BY user_1.username order by Count(user.refid); 

仍需要破譯,雖然它:),看看它是否工作

感謝 尼古拉斯