sql - LockAmountOnline_Active:聚合可能不会出现在 WHERE 子句中,除非它在子查询中
问题描述
IF @FlagGenerate = 0
BEGIN
INSERT INTO Lock_Amount_Trx
(
Id,Custcode,NoRekDebet,TotalLockAmount,LockStatus,GenerateDate
)
SELECT @fileId,tla.cuscode,tla.norekdeb, tla.lockammount,'Active', getdate() FROM ##TempLockActive tla
WHERE NOT EXISTS (SELECT lat.NoRekDebet FROM Lock_Amount_Trx lat WHERE lat.Custcode = tla.cuscode AND lat.TotalLockAmount = tla.lockammount AND lat.GenerateDate =max(lat.GenerateDate))
OR NOT EXISTS (SELECT lat.TotalLockAmount FROM Lock_Amount_Trx lat WHERE lat.Custcode = tla.cuscode AND lat.NoRekDebet = tla.norekdeb AND lat.GenerateDate =max(lat.GenerateDate) )
END
我正在尝试从##TempLockactive
表中输入,Lock_ammount_trx
如果 NoRekDebet 或 TotalLockAmmount 或两者的组合##TempLockActive
在最新生成日期的同一行中没有相同的值,它将插入 cuscode 为主键。
我收到这个错误
消息 147,级别 15,状态 1,过程 LockAmountOnline_Active,第 96 行
聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且正在聚合的列是外部引用。
有人可以帮助我吗?
解决方案
正如错误消息所示,聚合可能不会出现在 WHERE 子句中,除非它包含在子查询中。
如果最大生成日期存在于表 Lock_Amount_Trx 中,请在继续插入之前尝试将最大值作为变量获取。
我的建议:
IF @FlagGenerate = 0
BEGIN
DEALLOCATE @maxGenerateDate datetime
SET @maxGenerateDate = (SELECT MAX(GenerateDate) FROM Lock_Amount_Trx )
INSERT INTO Lock_Amount_Trx
(
Id,Custcode,NoRekDebet,TotalLockAmount,LockStatus,GenerateDate
)
SELECT @fileId,tla.cuscode,tla.norekdeb, tla.lockammount,'Active', getdate()
FROM ##TempLockActive tla
WHERE NOT EXISTS (SELECT lat.NoRekDebet FROM Lock_Amount_Trx lat WHERE lat.Custcode = tla.cuscode AND lat.TotalLockAmount = tla.lockammount AND lat.GenerateDate = @maxGenerateDate)
OR NOT EXISTS (SELECT lat.TotalLockAmount FROM Lock_Amount_Trx lat WHERE lat.Custcode = tla.cuscode AND lat.NoRekDebet = tla.norekdeb AND lat.GenerateDate =@maxGenerateDate )
END
推荐阅读
- hittest - 在 Spark AR 的平面跟踪器上点击屏幕底部的测试中心
- c# - 如何在 c# 中的 iTextsharp 中将图像添加到 acrofield?
- julia - 是否可以在 Julia 中使用非线性函数 ifor 目标?
- cakephp - 对同一模型使用多个数据库
- r - R. n Previous Elements in a data frame of another column
- android - 检查移动令牌
- ios - Xcode 12 (beta) 编译器错误 - 两个具有相同名称但在不同模块中的类
- swift - 如何根据图库中的图像快速调整imageView的大小
- python - Jupyter notebook 在(imshow)图上移动矩形
- amazon-web-services - 从 CloudWatch 获取最新指标