3

mySql と C# を使用して Expense Manager を作成しています。Expenses_ID と YearMonth で経費を記録します。異なる YearMonthID の同じ 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`

助けてください!

4

3 に答える 3

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
于 2012-11-24T09:44:38.480 に答える
0

上記のクエリは各expense_IDの合計を提供しますが、2012年のみの各expend_IDの合計費用を取得するには(他の年のレコードもあると仮定して)、次のクエリの方が適しています

SELECT Expense_ID, SUM(Costs) totalCosts
FROM tableName WHERE ym_ID LIKE '2012%'
GROUP BY Expense_ID
于 2012-11-24T10:17:23.607 に答える
0
select expense_id, sum(cost) from COST_T group by expense_id;  

これを参照してください:

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

于 2012-11-24T09:52:50.563 に答える