unless it is in a subquery contained in a HAVING clause or a select list.
2024-09-01 12:44:41
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
最新文章
- 通过c程序更改文件的ctime和mtime
- seajs模块化开发
- Android学习笔记之ExecutorService线程池的应用....
- [swustoj 771] 奶牛农场
- POJ 1067 取石子游戏
- RestService中的 get post put delete
- 【转】非常详细的docker学习笔记
- ROOT android 原理。 基于(zergRush)
- Ubuntu 14.0 升级内核到指定版本
- JedisConnectionException: Unexpected end of stream.
- springboot 1.5.2 集成kafka 简单例子
- Class 与 Style 绑定
- 乐观的并发策略——基于CAS的自旋
- linux 每个小时释放一次cache
- RandomAccessFile出现中文乱码问题
- 【BZOJ1022】小约翰的游戏(博弈论)
- docker exec进程是由谁产生的
- MySQL root密码忘记后更优雅的解决方法
- Spring_之注解事务 @Transactional
- python tkinter教程-事件绑定