【问题标题】:Groups and Aggregate functions questions组和聚合函数问题
【发布时间】:2017-06-04 17:49:22
【问题描述】:
SELECT HCIS,ServiceDate,PrimeInsMnemonic,TIN,Amount,SUM(Amount) AS Total
FROM dbo.PbrChargeTransactions
WHERE HCIS = 'ASL'
AND ServiceDate Between'01/01/16' and '12/31/16'
AND PrimeInsMnemonic = 'MED'
AND TIN in ('460224598','46-0224598')
GROUP By HCIS
ORDER BY SUM(Amount) 

我得到的错误:

消息 8120,第 16 级,状态 1,第 1 行 列 'dbo.PbrChargeTransactions.ServiceDate' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

我希望有人能向我解释为什么这不起作用?

提前感谢您的帮助!

【问题讨论】:

标签: sql


【解决方案1】:

我认为信息很清楚。所有未聚合的列都应该在GROUP BY 中。因此,请删除您不使用的列:

SELECT HCIS, SUM(Amount) AS Total
FROM dbo.PbrChargeTransactions
WHERE HCIS = 'ASL' AND
      ServiceDate Between '2016-01-01' AND '2016-12-31' AND
      PrimeInsMnemonic = 'MED' AND
      TIN in ('460224598','46-0224598')
GROUP By HCIS
ORDER BY SUM(Amount) 

【讨论】:

  • 非常感谢。我只是对自己更加努力。我非常感谢您的帮助。
【解决方案2】:

如果它们不在聚合函数中,您应该在 Select 语句中包含要在 Group By 中重复的每一列

SELECT HCIS,ServiceDate,PrimeInsMnemonic,TIN,Amount,SUM(Amount) AS Total FROM dbo.PbrChargeTransactions 其中 HCIS = 'ASL' AND ServiceDate between '01/01/16' 和 '12/31/16' AND PrimeInsMnemonic = 'MED' AND TIN ('460224598','46-0224598') GROUP By HCIS,ServiceDate,PrimeInsMnemonic,TIN,Amount ORDER BY SUM(金额)

【讨论】:

    【解决方案3】:

    正如他们所说,您必须在选择中按列输入分组。

    SELECT HCIS,ServiceDate,PrimeInsMnemonic,TIN,Amount,SUM(Amount) AS Total
    FROM dbo.PbrChargeTransactions
    WHERE HCIS = 'ASL'
    AND ServiceDate Between'01/01/16' and '12/31/16'
    AND PrimeInsMnemonic = 'MED'
    AND TIN in ('460224598','46-0224598')
    GROUP By HCIS,ServiceDate,PrimeInsMnemonic,TIN,Amount
    ORDER BY SUM(Amount)
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2012-11-17
      • 1970-01-01
      • 2020-01-24
      • 2021-11-20
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多