热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

聚合可能不会出现在WHERE子句中,除非它在子查询中

我正在尝试使用以下代码:m_Set.ClearQueryInfo();m_Set.SetParameterWhere(PatID@PatIDParamANDEffectiveEn

我正在尝试使用以下代码:

m_Set.ClearQueryInfo();
m_Set.SetParameterWhere("PatID = @PatIDParam AND EffectiveEnrollmentDate IN (Select MAX(EffectiveEnrollmentDate))");
m_Set.SetWhere("PatID = ? AND EffectiveEnrollmentDate IN (Select MAX(EffectiveEnrollmentDate))");
m_Set.SetNumParams(1);
m_Set.SetParam("@PatIDParam", 1, PatIDParam.ToString());

但我最终收到以下错误:


An aggregate may not appear in the
WHERE clause unless it is in a

subquery contained in a HAVING clause

or a select list, and the column being

aggregated is an outer reference,

SELECT dbo.[PatRoster].* FROM

dbo.[PatRoster] WHERE PatID =

@PatIDParam AND

EffectiveEnrollmentDate IN (Select

MAX(EffectiveEnrollmentDate))


解决方法:

您的查询无效-选择MAX(EffectiveEnrollmentDate)未完成;它必须从该子查询中的某处选择“ EffectiveEnrollmentDate”.

另外,MAX()仅返回单个值,因此不需要IN-您可以直接进行比较操作符=.


推荐阅读
author-avatar
Sunflower_琪琪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有