我正在使用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`
请帮帮我!
答案 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)
答案 2 :(得分:0)
以上查询会为您提供每个expense_ID的总和,但是为了获得仅2012年的每个expense_ID的总成本(假设您还有其他年份的记录),以下查询会更好
SELECT Expense_ID, SUM(Costs) totalCosts
FROM tableName WHERE ym_ID LIKE '2012%'
GROUP BY Expense_ID