首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

用vb比较同一个数据表中的两个字段中的内容是否相同?该如何处理

2012-03-02 
用vb比较同一个数据表中的两个字段中的内容是否相同??1、从数据表的字段1中最后一个记录开始数起的100条数

用vb比较同一个数据表中的两个字段中的内容是否相同??
1、从数据表的字段1中最后一个记录开始数起的100条数据来比较内容是否相同。

字段1 字段2  
  1 100 ‘(即1=100是否相同)
  2 99 ‘(即2=99是否相同)
  3 98 ……
 …… …… …… (由下至上比较)
 …… …… ……
 100 1 ‘(即100=1是否相同)

再统计出有多少条是相同的,输出到文本框中。

2、还有是“字段1”的第条5数据,与“字段2”的第1条数据比较一直比较到100记录才结束。

即“字段1”的第100条记录与“字段2”的第95条记录比较,一直到“字段1”的第5条记录与“字段2”的第1条记录比较。

再统计出有多少条是相同的,输出到文本框中。


[解决办法]

探讨
那从最后一条记录,开始数起到第100条记录的代码呢??acmain

[解决办法]
建两个记录集,利用其的AbsolutePosition属性(前提是所建的记录集支持)
至于比较,只是循环的问题了.
VB code
rs1.AbsolutePosition=100rs21.AbsolutePosition=95for i=100 to 6 '100~95,6~1(并不是5~1)    if rs1(i)=rs2(i-5)    '……        rs1.AbsolutePosition=rs1.AbsolutePosition-1        rs2.AbsolutePosition=rs2.AbsolutePosition-1next
[解决办法]

表名: Table1
列名: ID,col1,col2 其中 ID为标识列,自增

首先选出所需的记录,100条,从后向前排
select top 100 col1,col2,col1-col2 as 差值 FROM table1 order by ID DESC

然后在这100条记录的基础上,选出相同的记录
select count(1) as 相同记录数 from (select top 100 col1,col2,col1-col2 as 差值 FROM table1 order by ID DESC) a where 差值=0

第一个问题应该很容易







[解决办法]
表名: Table1
列名: ID,col1,col2 其中 ID为标识列,自增

同样,先选出所需的记录,100条,从后向前排
select top 100 col1,col2 ,row_number()over(order by ID desc) as tn FROM table1 order by tn DESC

然后在这100条记录的基础上,选出行号相差5的相同的记录

select sum (case when a.col1=b.col2 then 1 else 0 end )as 相同记录数 from 
(select top 100 col1,col2 ,row_number()over(order by ID desc) as tn FROM table1 order by tn DESC) a join 
(select top 100 col1,col2 ,row_number()over(order by ID desc) as tn FROM table1 order by tn DESC) b on a.tn=b.tn-5

至于把结果输入到文本框中,则要在VB中另写代码,如果用VB+数据库编程,这是最基本的,相信楼主应该很容易搞定






[解决办法]
没看懂楼主的需求到底是什么,不了。

(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
 
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
 
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

热点排行