| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1879 人关注过本帖
标题:[求助]代码问题
只看楼主 加入收藏
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
结帖率:100%
收藏
 问题点数:0 回复次数:10 
[求助]代码问题
请问各位高手,以下代码有何错误呢?
。。。。。
select 姓名, sum(iif(课程名='&km',成绩,0))&km;
from xscj2 group by 学号 having 年级=nj or 班级=nj;
order by &km desc;
into cursor temp
。。。。。。
这段代码在VFP6运行正常,而转到VFP9却出现错误提示:having 语句无效
搜索更多相关主题的帖子: 代码 
2008-12-11 10:11
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
select min(姓名) as 姓名, sum(iif(课程名=km,成绩,0)) as &km;
from xscj2 group by 学号 having 年级=nj or 班级=nj;
order by &km desc;
into cursor temp

特别不能理解楼主这句是怎么写出来的?
sum(iif(课程名='&km',成绩,0))&km;

[[it] 本帖最后由 robinbest 于 2008-12-11 10:21 编辑 [/it]]
2008-12-11 10:20
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
robinbest不知是否理解错这段代码呢?问题主要在它可以在VFP6运行,而在VFP9不能运行,说是 having错误。
对于sum(iif(课程名='&km',成绩,0))&km,主要针对有关成绩统计把字段变为列名
2008-12-11 11:07
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
以下是引用TZTJ在2008-12-11 11:07的发言:

robinbest不知是否理解错这段代码呢?问题主要在它可以在VFP6运行,而在VFP9不能运行,说是 having错误。
对于sum(iif(课程名='&km',成绩,0))&km,主要针对有关成绩统计把字段变为列名



vfp6能运行,vfp9提示出错的情况多呢!
你 having 年级=nj or 班级=nj  是要想干什么? 怎么两是都是 =nj?
而且我认为,你用group by 本身像你那写就不对(不分组的字段好像必须使用聚合函数)。
你最好直接说出你要的功能,让大家给你重写select 语句。
我当然知道sum(iif(课程名='&km',成绩,0))&km 是干什么的,我只是奇怪 课程名='&km'这样写是干嘛,多此一举呀!直接 课程名=km 不更简单?
2008-12-11 15:06
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
好像有问题……
不过真如楼主所说VF6可以正确运行,那可以试试:
SET ENGINEBEHAVIOR 70

相互学习,互相交流,共同提高。
2008-12-11 15:18
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
能解析SET ENGINEBEHAVIOR 70 的作用吗?
 对于robinbest的问题,我很难说得清楚,是我在不断实验中得到的,总之它能实现我想要的功能。
只不过近来改为VFP9运行后才发现这个问题。因此,我想了解一下VFP6与VFP9在代码运行时有什么特别要求呢?
2008-12-11 21:29
ThomasLv
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-12-6
收藏
得分:0 
发现写的代码太不规范,如在我公司早被批了。好的代码是一种习惯。

SET ENGINEBEHAVIOR 70 是 VFP8的初值设定。
9.0初值为80,想SQL Server一样严格的使用group by .
但为了 方便一般都是用SET ENGINEBEHAVIOR 70
2008-12-11 22:56
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
加上SET ENGINEBEHAVIOR 70 问题已经解决。对于thomaslv说代码太不规范,不知你有水平吗?你对VFP掌握了多少呢?
2008-12-11 23:26
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
SET ENGINEBEHAVIOR 70
是指定 Visual FoxPro 按 Visual FoxPro 8.0 以前版本的方式处理 SQL 命令。

相互学习,互相交流,共同提高。
2008-12-12 07:11
robinbest
Rank: 1
等 级:新手上路
威 望:2
帖 子:213
专家分:0
注 册:2007-9-13
收藏
得分:0 
我这前也遇到过同样的问题,也是GUOUP BY 出问题,在CSDN上有位高人指点说:VFP9比VFP6更规范,要求更严格。
2008-12-12 08:18
快速回复:[求助]代码问题
数据加载中...
 
   



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

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