【问题标题】:total sum of values with same Name but different ID in a table表中名称相同但ID不同的值的总和
【发布时间】:2012-11-24 19:22:05
【问题描述】:

我正在使用 mySql 和 C# 创建费用管理器。它使用 Expenses_ID 和 YearMonth 记录费用。现在,我如何对具有不同 YearMonthID 的相同 Expenses_ID 的费用进行求和 - 例如。 2012 年总“电费”(Expense_ID=1)成本(2012 年 1 月、2012 年 2 月、2012 年 3 月)
2012 年(2012 年 1 月、2012 年 2 月、2012 年 3 月)的总“租金”(Expense_ID=2)成本等等。在同一个查询中。

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

请帮帮我!

【问题讨论】:

  • +1 用于提供具有所需结果的样本记录

标签: c# mysql sql


【解决方案1】:

您需要使用聚合函数 (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

【讨论】:

    【解决方案2】:
    select expense_id, sum(cost) from COST_T group by expense_id;  
    

    看这个:

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

    【讨论】:

      【解决方案3】:

      上述查询将为您提供每个费用 ID 的总和,但要获取仅 2012 年每个费用 ID 的总成本(假设您也有其他年份的记录),以下查询会更好

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-14
        • 1970-01-01
        • 2012-06-24
        • 2017-01-17
        • 2018-11-07
        • 1970-01-01
        • 2020-12-31
        相关资源
        最近更新 更多