| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1316 人关注过本帖
标题:VFP6 下提示: sql 表达式太复杂是何回事?
取消只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:6 
VFP6 下提示: sql 表达式太复杂是何回事?
下述语句在vfp9运行正常用,但在vfp6 下提示:sql表达式太复杂?有否办法可改为在vfp6下可运行?

select *,iif(mod(jy,11)=0,'1',iif(mod(jy,11)=1,'0',iif(mod(jy,11)=2,'X',iif(mod(jy,11)=3,'9',iif(mod(jy,11)=4,'8',iif(mod(jy,11)=5,'7',iif(mod(jy,11)=6,'6',iif(mod(jy,11)=7,'5',iif(mod(jy,11)=8,'4',iif(mod(jy,11)=9,'3',iif(mod(jy,11)=10,'2','N')))))))))))  as jym from ls into table sfzjym
在vf6 下SELECT 查询语句中多少个表达式可容纳?

[ 本帖最后由 sylknb 于 2014-9-21 10:11 编辑 ]
搜索更多相关主题的帖子: 表达式 
2014-09-21 09:40
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
有何妙法?
2014-09-21 10:24
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用sdta在2014-9-21 10:25:41的发言:

select *,iif(mod(jy,11)=0,'1',iif(mod(jy,11)=1,'0',iif(mod(jy,11)=2,'X',iif(mod(jy,11)=3,'9',iif(mod(jy,11)=4,'8',iif(mod(jy,11)=5,'7',iif(mod(jy,11)=6,'6',iif(mod(jy,11)=7,'5',iif(mod(jy,11)=8,'4',iif(mod(jy,11)=9,'3',iif(mod(jy,11)=10,'2','N')))))))))))  as jym from ls into table sfzjym  
 
改为以下代码试试
select *,iif(mod(jy,11)=0,'1',iif(mod(jy,11)=1,'0',iif(mod(jy,11)=2,'X',iif(mod(jy,11)=3,'9',iif(mod(jy,11)=4,'8',iif(mod(jy,11)=5,'7',iif(mod(jy,11)=6,'6',iif(mod(jy,11)=7,'5',iif(mod(jy,11)=8,'4',iif(mod(jy,11)=9,'3','2'))))))))))  as jym from ls into table sfzjym
通过了,为什么不要iif(mod(jy,11)=10,'2'?
2014-09-21 10:36
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
以下是引用sdta在2014-9-21 10:29:11的发言:

SFZH=[320113196301040514]
*- 04 -第18位校验码验证
J=[0709100508040201060307091005080402]
*   Y值:012345678910   
校验码="10X98765432"
LOCAL NUM,CTITLE  
NUM=0
CTITLE=""
FOR I=1 TO 17
    NUM=NUM+VAL(SUBSTR(J,I*2-1,2))*VAL(SUBSTR(SFZH,I,1))
ENDFOR
CTITLE=[第18位校验码为【]+SUBSTR(校验码,MOD(NUM,11)+1,1)+[】,与身份证校验码]+IIF(RIGHT(SFZH,1)==SUBSTR(校验码,MOD(NUM,11)+1,1),"相符","不相符")
MESSAGEBOX(CTITLE,64,"系统信息")
*- 04 -第18位校验码验证 与
J=[0709100508040201060307091005080402]
各表示什么意思?
2014-09-21 10:55
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
1。校验的计算方式:
  1. 对前17位数字本体码加权求和
  公式为:S = Sum(Ai * Wi), i = 0, ... , 16
  其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
根据上述公式如何变成:J=[0709100508040201060307091005080402] ?各数字前面的0如何来得?
2。SFZH=[320113196301040514]
*- 04 -第18位校验码验证
“*- 04 -第18位校验码验证” 中04表示sfzh中哪几个数字?



[ 本帖最后由 sylknb 于 2014-9-21 11:59 编辑 ]
2014-09-21 11:25
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
(Ai * Wi), i = 0, ... , 16
其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
怎能么变成了0709100508040201060307091005080402] ?各数字前面的0如何来得?
例如:330622194806150039,ai:a1第一位是3 ,wi:w1--7 相乘 变成了多少?

[ 本帖最后由 sylknb 于 2014-9-21 14:06 编辑 ]
2014-09-21 14:05
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
原来如此,谢谢
2014-09-21 14:18
快速回复:VFP6 下提示: sql 表达式太复杂是何回事?
数据加载中...
 
   



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

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