【问题标题】:SELECT DISTINCT TWO COLUMNS and SUM another COLUMN's VALUES选择不同的两列并求和另一列的值
【发布时间】:2014-11-23 11:07:21
【问题描述】:

给定两个链接在一起的表

tbl_Gasoline 
--------------
ID | Type
-------------
1  | Diesel
2  | Kerosene

tbl_Expense
-----------------------------
ID | Price  | GasolineType (tbl_Gasoline foreign key)
-----------------------------
1  | 5000   | 1
2  | 4000   | 2
3  | 3000   | 1

我想要这样的输出

tbl_GasolineExpense
----------------------------
ID |  Price  | Type
----------------------------
1  |  8000   | Diesel
2  |  4000   | Kerosene

我曾尝试使用 DISTINCT 和 SUM 子句,但似乎无法进行良好的查询。 我已经很久没有使用 SQL 了,所以非常感谢一些帮助。

【问题讨论】:

    标签: sql sql-server-2008 sum distinct


    【解决方案1】:

    试试这个

    SELECT e.id, SUM(price) AS 'price', g.NAME 
    FROM tbl_expense e
    INNER JOIN tbl_gasoline g ON e.GasolineType = g.id 
    GROUP BY e.id, g.NAME
    

    【讨论】:

      【解决方案2】:

      请试试这个。

      SELECT
      e.id,
      SUM(price) AS 'price',
      g. NAME
      FROM
          tbl_expense e
      INNER JOIN tbl_gasoline g ON e.GasolineType = g.id
      GROUP BY
          g.id,g. NAME
      

      【讨论】:

      • 谢谢@S。 M Mohiuddin,但我在使用代码时遇到了一些错误,说明 e.id 在选择列表中无效,因为它既不包含在聚合函数或 GROUP BY 子句中。
      【解决方案3】:
      SELECT tbl_Gasoline.ID,SUM(tbl_Expense.Price),tbl_Gasoline.Type 
      from tbl_Expense inner join tbl_Gasoline on tbl_Expense.GasolineType = tbl_Gasoline.ID 
      group by tbl_Gasoline.ID
      

      【讨论】:

        【解决方案4】:
        select 
          g.ID,
          E.SUM(PRICE) as price,
          e.GasolineType 
        from 
          tbl_Gasoline  g,tbl_Expense e 
        where 
          g.ID=e.GasolineType group by e.GasolineType
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-11
          • 2011-05-06
          • 2013-06-13
          • 1970-01-01
          • 2015-06-23
          • 1970-01-01
          相关资源
          最近更新 更多