如何使用求和列从sql server创建结果

时间:2014-02-21 10:24:51

标签: sql sql-server sum correlated-subquery

你好我想要的是写一个查询,它将获取3列: -

  1. nvarchar column1
  2. 整数值column2
  3. 求和列2的单个单元格
  4. 是否有可能,我收到以下错误: -

    Msg 8120,Level 16,State 1,Line 1 列'tablename.columnname'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

    以我希望获得的格式获取数据的正确程序是什么。

    修改

    Jaques的回答有效,但我得不到我想要的东西。我想要的是:

    column 1 PID | column 2 SID | column 3 | column 4 | Column 5(Total of 4)
    -------------------------------------------------------------------------
    1            | 1            | ABC      | 125.00   | 985.00
    2            | 2            | XYZ      | 420.00   |
    3            | 3            | DEF      | 230.00   |
    4            | 4            | GHI      | 210.00   |
    

3 个答案:

答案 0 :(得分:1)

我怀疑您在某些列上使用了某些聚合函数,而没有在group by子句中列出剩余的列。您的查询应该如下所示。

select sum(column2), column1 from table1
group by column1

答案 1 :(得分:0)

您可以通过以下方式执行此操作,因为您需要在组中添加所有非聚合值,这会使其变得困难

Select column1, column2, SUM(column2) OVER (PARTITION BY column1) as Total from [Table]

这应该有用。

您可以使用已编辑答案中的子选项进行此操作,但为什么要这样?

Select Column1, Column2, Column3, Column4, (Select SUM(Column4) from Table) as Column 5 from Table

答案 2 :(得分:0)

您必须在selectgroup by子句中包含相同的列。

如果要对包含所有值的列求和,则必须在select子句中包含每行具有不同值的列,如下所示:

SELECT columnId, sum(column4) as total
FROM MyTable
GROUP BY columnId

或者根本不包括选择任何额外的列,如下所示:

select sum(column4) from MyTable