| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 468 人关注过本帖
标题:如何可以更快的查询
只看楼主 加入收藏
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
结帖率:93.88%
收藏
已结贴  问题点数:20 回复次数:2 
如何可以更快的查询
下面是我写的程序,功能是达到了,但是我觉得不是很科学,应该还有别的方法还可以更快
我要达到的功能如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

如图:查询号码的最后一次开奖日期,并将查询结果更新到表
来源表:基础数据
写入表:组选分析区
说明:号码,基础数据里面都有,所以查询出来不可能是空,至少都有一条记录。当然也可能一个号码查询出来有多条记录,取最后一次开奖日期(开奖期数)
我的思路就是,把每一个号码查询出来,然后取出最后一条记录的开奖期数
不知道,有没有更好的更快的办法,我觉得程序执行好像有点慢
水平有限,只能写出这样的程序
程序代码:
sqlexec(nHandle,"select * from 组选分析区","查询开奖期数")
SELECT 查询开奖期数
zjl=RECCOUNT()&&获取循环次数
FOR i=1 TO zjl
sqlexec(nHandle,"select * from 组选分析区","查询开奖期数1")
SELECT 查询开奖期数1
go i
SCATTER TO b
c1=b(1)&&查询开奖期数---序号
c2=b(2)&&号码
c3=b(5)&&上次期数

sqlexec(nHandle,"select * from 基础数据","查询数据")
SELECT 查询数据
&&原始数据
***********************************************
SELECT * from 查询数据 WHERE 开奖号=ALLTRIM(c2) INTO CURSOR 查询数据1
SELECT 查询数据1
&&要查询的数据
***********************************************
jl=RECCOUNT()
IF jl<1
sqlexec(nHandle,"update 组选分析区 set 开奖期数='0' where 序号="+c1)
ELSE
GO bottom
SCATTER TO BB
bc=BB(1)
sqlexec(nHandle,"update 组选分析区 set 开奖期数=?bc where 序号="+c1)
ENDIF
thisform.Init
ENDFOR
MESSAGEBOX("开奖信息查询完毕!",64,"系统提示")


[此贴子已经被作者于2023-4-18 20:34编辑过]

搜索更多相关主题的帖子: 分析 查询 select 数据 号码 
2023-04-18 20:29
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:654
专家分:2535
注 册:2018-3-13
收藏
得分:20 
好像用不着取到前台来统计再写回,仅在sql端更新就够了
程序代码:
Text to cSql Noshow textmerge pretext 1+2+4
    update t set t.开奖期数 = isnull(s.最大期号, '0')
    from 组选分析区 t left join (
        select 组选号, max(期号) as 最大期号 from 基础数据 group by 组选号
        ) s on t.号码 = s.组选号;
    select * from 组选分析区;
EndText
sqlexec(nHandle, cSql,"查询开奖期数")

这家伙很懒,啥也没留下
2023-04-18 22:42
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-18 22:42:13的发言:

好像用不着取到前台来统计再写回,仅在sql端更新就够了
Text to cSql Noshow textmerge pretext 1+2+4
    update t set t.开奖期数 = isnull(s.最大期号, '0')
    from 组选分析区 t left join (
        select 组选号, max(期号) as 最大期号 from 基础数据 group by 组选号
        ) s on t.号码 = s.组选号;
    select * from 组选分析区;
EndText
sqlexec(nHandle, cSql,"查询开奖期数")

效率高
2023-04-19 09:05
快速回复:如何可以更快的查询
数据加载中...
 
   



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

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