表中具有相同名称但ID不同的值的总和

时间:2012-11-24 09:41:29

标签: c# mysql sql

我正在使用mySql和C#来创建一个费用管理器。它记录Expenses with 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月)等等。在同一查询中。

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

请帮帮我!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

select expense_id, sum(cost) from COST_T group by expense_id;  

见:

http://sqlfiddle.com/#!2/941e7/1

答案 2 :(得分:0)

以上查询会为您提供每个expense_ID的总和,但是为了获得仅2012年的每个expense_ID的总成本(假设您还有其他年份的记录),以下查询会更好

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