首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UCanAccess集团

UCanAccess集团
EN

Stack Overflow用户
提问于 2017-10-02 20:26:18
回答 2查看 217关注 0票数 1

需要学习如何与UCanAccess一起工作,在这里我可以通过这些选择使用一个组。

代码语言:javascript
复制
 String sql =  "SELECT Route_To, BatchNo, BatchScOpr, BatchTrack, Time_Stamp,
 sum(fix_bat_sum.STOTS + fix_bat_sum.STOTR) AS Sum
 FROM fix_bat_sum GROUP BY fix_bat_sum.BatchNo";

我在一个MySQL DB中使用了它,它工作得很好,但是当我尝试使用.mdb时,UCanAccess会抛出空指针,如下所示

代码语言:javascript
复制
java.sql.SQLSyntaxErrorException: expression not in aggregate or GROUP BY columns: PUBLIC.FIX_BAT_SUM.ROUTE_TO

会喜欢一些帮助的人

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-02 20:31:35

您必须列出GROUP BY子句中的所有非聚合列。

代码语言:javascript
复制
GROUP BY Route_To, BatchNo, BatchScOpr, BatchTrack, Time_Stamp

与其他数据库相比,MySQL对此更为宽容,尽管MySQL 5.7中的默认设置发生了变化。

票数 2
EN

Stack Overflow用户

发布于 2017-10-02 20:34:08

MySQL为GROUP提供了一个非标准的扩展,它允许处理查询。

通过在MySQL中包含ONLY_FULL_GROUP_BY,我们可以让sql_mode显示出类似于其他关系数据库的行为。这样,MySQL将返回一个类似于其他RDBMS返回的错误。

有关此行为的解释,请参阅MySQL参考手册:

https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

“聚合表达式”指聚合函数之一的结果,例如MAX()MIN()AVG(),它们对一组行进行操作以返回单个值。

作为这个问题的一个简单例子:

代码语言:javascript
复制
foo  bar
---- ----
1    a
1    b
3    c
1    d

使用此查询

代码语言:javascript
复制
SELECT foo, bar FROM mytable GROUP BY foo 

GROUP BY子句将导致行集“折叠”。请注意,对于foo=1,可以为bar返回三个可能的值。哪些值应该返回?

如果我们指定MAX(bar)MIN(bar)代替bar,则指定要返回的值。如果没有聚合,结果将是不确定的。MySQL可以选择返回这三个值中的任何一个。

SQL的标准行为是拒绝查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46533220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档