注册 登录
编程论坛 VFP论坛

咨询"GROUP BY clause is missing or invalid"如何排错

shschy 发布于 2023-07-24 11:52, 522 次点击
以下代码 倒数第2句 SELECT 。。。。。。 ORDER BY mxhtwybh 可正常运行
但是     倒数第1句 SELECT mxhtwybh,SUM(mxdtjtgs) as "mxdtjtgs",QDHTBTMC FROM qdgsxmls GROUP BY mxhtwybh
运行后弹窗提示“SQL:GROUP BY clause is missing or invalid”
CREATE TABLE qdgsxmls (mxhtwybh c(12),mxdtjtgs n(8,2),QDHTBTMC c(80))
INSERT INTO qdgsxmls (mxhtwybh,mxdtjtgs,QDHTBTMC) VALUES ;
       ("20230101C_JB",2.00,"2023年度公司综合日常管理工时投入")
INSERT INTO qdgsxmls (mxhtwybh,mxdtjtgs,QDHTBTMC) VALUES ;
       ("20230101C_JB",1.50,"2023年度公司综合日常管理工时投入")
INSERT INTO qdgsxmls (mxhtwybh,mxdtjtgs,QDHTBTMC) VALUES ;
       ("20230101C_JB",2.50,"2023年度公司综合日常管理工时投入")   
SELECT mxhtwybh,mxdtjtgs as "mxdtjtgs",QDHTBTMC FROM qdgsxmls ORDER BY mxhtwybh
SELECT mxhtwybh,SUM(mxdtjtgs) as "mxdtjtgs",QDHTBTMC FROM qdgsxmls GROUP BY mxhtwybh
3 回复
#2
csyx2023-07-24 12:18
vfp9 的 group by 更加符合 sql 标准,也就是非聚合函数统计的输出列都必须在 group by 中列出
按此规则 GROUP BY mxhtwybh 应改成 GROUP BY mxhtwybh, QDHTBTMC
如果不想改语句,就必须 Set EngineBehavior 70,以便 vfp9 的 group by 与早期版本兼容

[此贴子已经被作者于2023-7-24 12:19编辑过]

#3
shschy2023-07-24 14:22
谢谢您的指点!
谢谢您的指点!
以下是引用csyx在2023-7-24 12:18:36的发言:

vfp9 的 group by 更加符合 sql 标准,也就是非聚合函数统计的输出列都必须在 group by 中列出
按此规则 GROUP BY mxhtwybh 应改成 GROUP BY mxhtwybh, QDHTBTMC
如果不想改语句,就必须 Set EngineBehavior 70,以便 vfp9 的 group by 与早期版本兼容

#4
shschy2023-07-24 14:30
回复 2楼 csyx 请问group by 后字段名是搜索结果出来表的字段名吗?谢谢!
您好!针对有时使用select left(老字段名,4) as “新字段名”,sum()。。。 from 表1 group by 。。。
结构语句,group by 后的字段名需要采取“新字段名”还是 “老字段名”
有时需要根据某字段开头几位,对全表分类统计,这时又不想生成临时表,想一句话完成。
1