标题:vfp9中是不是在select 子句中出现某个字段名及聚合函数,后面一定要出现 gr ...
只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:79.3%
已结贴  问题点数:20 回复次数:7 
vfp9中是不是在select 子句中出现某个字段名及聚合函数,后面一定要出现 group by ...。?
select count(*) from bmk  &通过
select *,count(*) from bmk    &&提示:group by 子句无效。。。。
是不是在select 子句中出现某个字段名及聚合函数,后面一定要出现 group by ...。?
搜索更多相关主题的帖子: count 
2014-04-08 18:07
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
是的
2014-04-08 18:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
Group By 是分组的意思
不需要分组的情况下,不需要 Group By
需要分组的情况下,需要 Group By
自己可以测试下

坚守VFP最后的阵地
2014-04-08 18:31
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
我是想既显示有关数字段,又要统计出有关字段的记录,但不分组:例如:
SELECT SUBSTR(xh,1,5) as bmd ,COUNT(*) as rs FROM bmk0651 WHERE tot1>=600
上面的命令,通不过,出现 group by 子句缺少或无效。一定要加 group by bmd

2014-04-08 18:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
首先要知道自己要做什么

SELECT SUBSTR(xh,1,5) as bmd ,COUNT(*) as rs FROM bmk0651 WHERE tot1>=600

你这条代码的意思是什么

坚守VFP最后的阵地
2014-04-08 19:16
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用sylknb在2014-4-8 18:52:12的发言:

我是想既显示有关数字段,又要统计出有关字段的记录,但不分组:例如:
SELECT SUBSTR(xh,1,5) as bmd ,COUNT(*) as rs FROM bmk0651 WHERE tot1>=600
上面的命令,通不过,出现 group by 子句缺少或无效。一定要加 group by bmd
那就只能采用子查询分别查出,再强制联接的办法去做:
SELECT BMD,RS ;
   FROM (SELECT SUBSTR(T1.XH,1,5) BMD ;
            FROM BMK0651 WHERE TOT1>=600) T1, ;
        (SELECT COUNT(*) RS ;
            FROM BMK0651 WHERE TOT1>=600) T2
2014-04-09 08:07
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
以下是引用taifu945在2014-4-9 08:07:31的发言:

那就只能采用子查询分别查出,再强制联接的办法去做:
SELECT BMD,RS ;
   FROM (SELECT SUBSTR(T1.XH,1,5) BMD ;
            FROM BMK0651 WHERE TOT1>=600) T1, ;
        (SELECT COUNT(*) RS ;
            FROM BMK0651 WHERE TOT1>=600) T2

taifu945

你的代码运行提示找不到T1


2014-04-10 20:41
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:20 
以下是引用sylknb在2014-4-10 20:41:50的发言:


taifu945

你的代码运行提示找不到T1
SELECT BMD,RS ;
   FROM (SELECT SUBSTR(XH,1,5) BMD ;
            FROM BMK0651 WHERE TOT1>=600) T1, ;
        (SELECT COUNT(*) RS ;
            FROM BMK0651 WHERE TOT1>=600) T2

这样就好了吧?
2014-04-11 08:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429823-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.476249 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved