请教高手们如何快速根据条件快速检索出来数据

h_flys 2013-03-29 12:46:57

1. 数据库字段

字段: A B C D E F G ...... 表 table


2.根据字段 A,B,C只要这3个相同的数据都分别分出来。分别在不同的窗口上显示。
比如:
A B C D E ......
内容1. 1 2 3 4 5
2. 1 2 3 6 5
3. 1 2 3 7 5
4. 5 5 6 8 9
5. 1 2 3 4 6
6. 1 3 2 4 4
7. 5 5 6 1 1
把 1,2,3,5行的内容放到一个窗口上显示。4,7 放到另外一个窗口上显示。6 也放到另外一个窗口上显示
就是要这个效果。

大家有什么快速从一个表中分别找出这些记录并分别放到另外的窗口上显示的方法吗? 就是如上的效果,有什么快速的方法吗?

目前想到的办法就是先排序,然后每条记录来 循环 find 来判断。试了下,但是速度并不乐观。 用group 类型的数据窗口可以快速的显示好分组的内容,显示好相同A,B,C字段的行内容,但是,却是在一起显示了,不是想要的分开窗口的显示方式。

求各位大神指点下思路。
...全文
1325 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛123 2013-03-30
  • 打赏
  • 举报
回复
h_flys 2013-03-30
  • 打赏
  • 举报
回复
谢谢 Eetze 兄弟的热心帮助,速度已经得到很大的提升。再次感谢。 变态的需求多了去了。。。
h_flys 2013-03-29
  • 打赏
  • 举报
回复
发我QQ 邮箱吧, 376857083@qq.com 谢谢。。。
h_flys 2013-03-29
  • 打赏
  • 举报
回复
只有关注,才可以发 私信。。。
Eetze 2013-03-29
  • 打赏
  • 举报
回复
引用 7 楼 h_flys 的回复:
恩 就是这样子 区分出来。 你这个动态创建 怎么搞的啊? 速度快吗?
你邮箱私信我 我把例子给你 你测试下好了
h_flys 2013-03-29
  • 打赏
  • 举报
回复
恩 就是这样子 区分出来。 你这个动态创建 怎么搞的啊? 速度快吗?
Eetze 2013-03-29
  • 打赏
  • 举报
回复


动态创建dw 酱紫的么
h_flys 2013-03-29
  • 打赏
  • 举报
回复
试过了,一样,速度不理想。。。一开始我就是这样做的。
  • 打赏
  • 举报
回复
提供一个思路,排序后不要用find,用for循环,比较本行和前一行,abc相同就是一组然后set入你准备好的dw,不同就不是一组,换个dw再set
h_flys 2013-03-29
  • 打赏
  • 举报
回复
.... 关键是我不懂 怎么取这个分好组的 行数啊。 不懂 6 是 单独做为一组了啊。。。
薛123 2013-03-29
  • 打赏
  • 举报
回复
用group 类型的数据窗口可以快速的显示好分组的内容,显示好相同A,B,C字段的行内容,但是,却是在一起显示了,不是想要的分开窗口的显示方式。 既然到了这一步,不妨试试将4,7隐藏,然后插入到一个临时表中,6也隐藏,然后插入到另一个临时表中
薛123 2013-03-29
  • 打赏
  • 举报
回复
zhangyangziwo 2013-03-29
  • 打赏
  • 举报
回复
为什么交给数据库去做呢 给表做个索引,应该很快结果就查询出来了。
PB菜鸟 2013-03-29
  • 打赏
  • 举报
回复
这种需求有的变态哦,目的何在? 为什么不直接用PB的ABC分组显示,分组显示时已经按需要的把各个不同的数据分开显示在同一个窗口中了,如果想楼主讲的那样有几十万数据,如果不同的数据很多,那岂不是要创建N多单独的小窗口显示数据,个人感觉用分组的方法在同一个窗口显示出来就行了。可以跟需求人员沟通,让他看下效果。
Eetze 2013-03-29
  • 打赏
  • 举报
回复



差别还是稍微有点的
h_flys 2013-03-29
  • 打赏
  • 举报
回复
OK 先谢了哈,我试下。
Eetze 2013-03-29
  • 打赏
  • 举报
回复
还有个思路倒是简单,也不用全部数据遍历,发给你了 具体的就是首先过滤重复 取不重复的 a b c 然后根据a b c对表Retrieve() 具体处理速度没试过 发给你了 你可以试一下
h_flys 2013-03-29
  • 打赏
  • 举报
回复
要实现的就是题目说的效果。 一般是从 二十来万数据中 提取数据 现在就是找不到快速提取数据的方法。 用 for 和 find 效果都不是很好。
Eetze 2013-03-29
  • 打赏
  • 举报
回复
引用 11 楼 h_flys 的回复:
回复 Eetze 看来那你的例子了,用循环,速度还是慢啊,数据量一大了还是卡。
我觉得你应该把你的具体问题说明白点,多大的数据量,具体实现功能是什么,如果想把你所有的信息分别放在不同的数据窗口内,那么有一点是肯定的,那就是所有的数据必须遍历一边,所能做的优化就只有在代码和算法上下功夫了。
h_flys 2013-03-29
  • 打赏
  • 举报
回复
回复 Eetze 看来那你的例子了,用循环,速度还是慢啊,数据量一大了还是卡。

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧