sql查询报错:

An aggregate may not appear in the WHERE clause unless it is in a
subquery contained in a HAVING clause or a select list.

group 语句where子句使用Max函数或SUM等函数时会提示报错,需要将引where子句换成having

如:

SELECT
SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied) as PastDueAmount
, M1.BillingID
, M2.Name
, M2.DelinquentDaysThreshold
, M2.DelinquentAmountThreshold
, DATEDIFF(d, MIN(BillingDate),GETDATE()) as DaysLate
FROM Invoices M1
LEFT JOIN ClientAccounts M2 ON M1.BillingID = M2.ID
WHERE
InvoiceTotal <> AmountApplied
AND M2.DelinquentDaysThreshold > DATEDIFF(d, MIN(BillingDate),GETDATE())
OR (SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied)) > M2.DelinquentAmountThreshold
GROUP BY
M1.BillingID
, M2.Name
, M2.DelinquentDaysThreshold
, M2.DelinquentAmountThreshold

会提示最上面的错误,调整成如下可通过:

SELECT
SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied) as PastDueAmount,
M1.BillingID, M2.Name,
M2.DelinquentDaysThreshold, M2.DelinquentAmountThreshold,
DATEDIFF(d, MIN(BillingDate),GETDATE()) as DaysLate
FROM
Invoices M1
LEFT JOIN
ClientAccounts M2 ON M1.BillingID = M2.ID
WHERE
InvoiceTotal <> AmountApplied
AND
M2.DelinquentDaysThreshold > DATEDIFF(d, MIN(BillingDate),GETDATE())
GROUP BY
M1.BillingID, M2.Name,
M2.DelinquentDaysThreshold, M2.DelinquentAmountThreshold,
DATEDIFF(d, MIN(BillingDate),GETDATE())
HAVING
(SUM(M1.InvoiceTotal)
-SUM(M1.AmountApplied)) > M2.DelinquentAmountThreshold

参考:SQL查询汇总可能不会显示在WHERE子句中 https://codeday.me/bug/20181101/353176.html

最新文章

  1. 通过c程序更改文件的ctime和mtime
  2. seajs模块化开发
  3. Android学习笔记之ExecutorService线程池的应用....
  4. [swustoj 771] 奶牛农场
  5. POJ 1067 取石子游戏
  6. RestService中的 get post put delete
  7. 【转】非常详细的docker学习笔记
  8. ROOT android 原理。 基于(zergRush)
  9. Ubuntu 14.0 升级内核到指定版本
  10. JedisConnectionException: Unexpected end of stream.
  11. springboot 1.5.2 集成kafka 简单例子
  12. Class 与 Style 绑定
  13. 乐观的并发策略——基于CAS的自旋
  14. linux 每个小时释放一次cache
  15. RandomAccessFile出现中文乱码问题
  16. 【BZOJ1022】小约翰的游戏(博弈论)
  17. docker exec进程是由谁产生的
  18. MySQL root密码忘记后更优雅的解决方法
  19. Spring_之注解事务 @Transactional
  20. python tkinter教程-事件绑定

热门文章

  1. Python面向对象之多态、封装
  2. Make 和 Makefile快速入门
  3. 2019-ACM-ICPC-徐州站网络赛- I. query-二维偏序+树状数组
  4. 牛客练习赛48 C 小w的糖果 (数学,多项式,差分)
  5. Luogu 4751 动态DP 模板
  6. POJ-2891-Strange Way to Express Integers(线性同余方程组)
  7. PHP yield占用内存测试
  8. MySQL服务优化参数设置参考
  9. learning scala extractor object
  10. PHP全栈学习笔记24