2012-11-24 123 views
3

我正在使用mySql和C#創建Expense Manager。它記錄Expenses_ID和YearMonth的費用。現在我怎樣才能用不同YearMonthID -eg的相同Expenses_ID來彙總費用。 「費用總額」(Expense_ID = 1)2012年費用(2012年1月,2012年2月,2012年3月)
「費用總額」(Expense_ID = 2)2012年費用(2012年1月,2012年2月,2012年3月)等等..在同一個查詢中。表中具有相同名稱但ID不同的值的總和

+--------+------------+-------+ 
| ym_ID | Expense_ID | Costs | 
+--------+------------+-------+ 
| 2012 1 |   1 | 123 | 
| 2012 1 |   2 | 103 | 
| 2012 1 |   3 | 100 | 
| 2012 2 |   1 | 144 | 
| 2012 2 |   2 | 122 | 
| 2012 2 |   3 | 155 | 
| 2012 3 |   1 | 177 | 
| 2012 3 |   2 | 112 | 
| 2012 3 |   3 | 111 | 
+--------+------------+-------+ 

這是我的表格。我想要每項費用的總費用。
輸出表: 像這樣:

+------------+----------------------------+ 
| Expense_ID | Total_Costs    | 
+------------+----------------------------+ 
|   1 |      444 | 
|   2 |      337 | 
|   3 |      366 | 
+------------+----------------------------+ 

在這裏,我有3個Expense_ID-但在主表是高達30.所以我需要一個查詢來做到這一點總和。

我嘗試了這些:

SELECT b.Costs=a.Costs+b.Costs 
FROM `Table1` a JOIN `Table1` b 
WHERE a.Expense_ID=b.Expense_ID 
     AND a.ym_ID<>b.ym_ID` 

幫我出請!

+0

'+ 1'爲樣本記錄提供期望的結果 –

回答

3

您需要使用聚合函數SUM)來計算的總成本爲每Expense_ID

SELECT Expense_ID, SUM(Costs) totalCosts 
FROM tableName 
// WHERE ym_ID LIKE '2012%'     // if you want for 2012 only 
GROUP BY Expense_ID 
0

上述疑問會給你每expense_ID的總和,但得到的總成本爲每expense_ID僅2012(假設你有其他年份也記錄)下面的查詢會更好

SELECT Expense_ID, SUM(Costs) totalCosts 
FROM tableName WHERE ym_ID LIKE '2012%' 
GROUP BY Expense_ID 
相關問題