注册 登录
编程论坛 VFP论坛

大佬们帮忙看看这是什么原因

hszxgb 发布于 2020-10-30 08:59, 1103 次点击
*打开数据库
OPEN DATABASE E:\学习\运动会管理系统\DATA\运动会.dbc
*从“总分”视图中查询各参赛单位的名次
SELECT a1.*,COUNT(*) as 名次;
     FROM 总分 a1,总分 a2;
     WHERE a1.总分<=a2.总分;
     GROUP BY a1.单位名称;
     ORDER BY 名次;
     INTO CURSOR 总分名次
*设置表格数据源
thisform.grid1.RecordSource="总分名次"

这是一个表单的init事件代码,总是提示GROUP BY 语句缺少或者无效。
2 回复
#2
mywisdom882020-10-30 12:21
VFP 9.0中
分组统计时,要注意的是,
select 字段1,字段2,字段3,字段4 from 你表 group by 字段1 &&报错误
这样的语句,会提示错误的,因为"字段1,字段2,字段3,字段4",要求这4个字段,必须在聚合函数max(),min(),avg(),sum()等等,或者包含在分组 group by中

select 字段1,max(字段2) as 字段2,min(字段3) as 字段3,sum(字段4) as 字段4 from 你表 group by 字段1 &&正取不报错误

select 字段1,字段2,字段3,字段4 from 你表 group by 字段1,字段2,字段3,字段4 &&正确


#3
hszxgb2020-10-30 20:16
回复 2楼 mywisdom88
*打开数据库
OPEN DATABASE E:\学习\运动会管理系统\DATA\运动会.dbc
*从“总分”视图中查询各参赛单位的名次
SELECT a1.*,COUNT(*) as 名次;
     FROM 总分 a1,总分 a2;
     WHERE a1.总分<=a2.总分;
     GROUP BY a1.单位编码,a1.单位名称,a1.男子组总分,a1.女子组总分,a1.总分;
     ORDER BY 名次;
     INTO CURSOR 总分名次
*设置表格数据源
thisform.grid1.RecordSource="总分名次"
 谢谢你,这样写解决了。
1