【问题标题】:C# sql sum the columnC# sql 对列求和
【发布时间】:2014-05-27 04:58:44
【问题描述】:

这是我的 sql 代码...代码工作正常并返回数据,但如果我尝试求和,则会引发错误。我正在使用 C#。我想对 left1 和 right1 列求和

SELECT Left1, Right1, Left_cf, Right_cf, case when Paid=0 then 'Unpaid' else 'Paid' end as 'Status' FROM BinaryWallet WHERE App_ID = "1000"

总和:

SELECT sum(Left1), sum(Right1), Left_cf, Right_cf, case when Paid=0 then 'Unpaid' else 'Paid' end as 'Status' FROM BinaryWallet WHERE App_ID = " 1000 "

【问题讨论】:

  • 什么错误? SUM 是一个聚合函数,因此您必须对数据集进行分组。发布您的表格结构和预期结果
  • 您必须在 Sum 中添加 Group By..

标签: c# sql sql-server-2008


【解决方案1】:

您必须使用 group by left_cf,Right_cf,Paid 在 sql Sum 语句中使用 group by

如果你添加代码的底部

Group by left_cf,Right_cf,Paid

您的代码将起作用。

【讨论】:

  • 列 'MfrdDnet.dbo.BinaryWallet.VID' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
【解决方案2】:
SELECT  sum(Left1), sum(Right1), Left_cf, Right_cf, 
        case when Paid=0 then 'Unpaid' else 'Paid' end as 'Status' 
FROM    BinaryWallet WHERE App_ID = " 1000"
GROUP BY Left_cf,Right_cf,Paid

【讨论】:

    【解决方案3】:

    这样试试

    SELECT sum(Left1), sum(Right1), Left_cf, Right_cf,
     case when Paid=0 then 'Unpaid' else 'Paid' end as 'Status' 
    FROM BinaryWallet WHERE App_ID = " 1000 "
    group by  Left_cf, Right_cf,Paid,Vid
    

    【讨论】:

    • 同样的错误..它不返回任何总和......如果我只将 Group by left_cf,Right_cf,Paid without sum.. 那么也会发生同样的错误
    • 错误:选择列表中的“MfrdDnet.dbo.BinaryWallet.VID”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
    • @user3133175 我更新了我的答案,你必须在 group by 子句中包含所有非聚合列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多