首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于在ACCESS中字段比较的问题请教! [已结帖,结帖人:Raiky007]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Raiky007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-22 10:40:38 楼主
    是这样的,我用ACCESS2003建立一个表,我想实现在表上的记录之间进行比较,然后把比较的结果显示出来.详情是这样的:表有四个字段,第一个为主键,不参与比较,另外三个字段都为整型数据,值在1~9之间,然后记录2与记录1比较,例如:ID1、字段1=1、字段2=2、字段3=3,ID2、字段1=2、字段2=3、字段3=4,ID1与ID2比较有两个数相同,于是显示有两个数相同1次!如此类推,ID3分别与ID2、ID1比较,如果ID3为字段1=1、字段2=3、字段3=4则显示有两个数相同3次,显示是累加的。如果有N条记录,则显示没有相同N次、有一个数相同N次,有两个数相同N次,有三个数相同N次。
    请问我应该怎样做才能实现这种处理呢?
    请大家帮帮忙,先谢谢啦!
    10  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wwwwb
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 9

      10

      12

    发表于:2008-08-22 10:43:251楼 得分:1
    将记录及正确结果贴出来看看,看得太累
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Raiky007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 10:51:582楼 得分:0
    呵呵,我现在的电脑没有装ACCESS,所以只能下班回家再贴了!!!
    谢谢!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Raiky007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:04:423楼 得分:0
    或者这样看可能会好一点!
    我用ACCESS2003建立一个表,我想实现在表上的记录之间进行比较,然后把比较的结果显示出来.详情是这样的:表有四个字段,第一个为主键,不参与比较,另外三个字段都为整型数据,值在1~9之间,
    例如:ID1、字段1=1、字段2=2、字段3=3
        ID2、字段1=2、字段2=3、字段3=4
        ID3为字段1=1、字段2=3、字段3=4
        ID4为字段1=1、字段2=2、字段3=4
                …… 

    把ID2与ID1比较有两个数相同,于是显示有两个数相同1次!如此类推,ID3分别与ID2、ID1比较,ID4与ID3、ID2、ID1比较,统计的结果是累加的,所以显示累加的数。如果有N条记录,
    则显示    没有相同N次、
              有一个数相同N次
              有两个数相同N次
              有三个数相同N次
    上面的记录比较为:
              没有相同0次
              有一个数相同0次
              有两个数相同6次//ID2与ID1比较有1次,3与2、1有2次,4与3、2、1有3次
              有三个数相同0次

    请问我应该怎样做才能实现这种处理呢?
    请大家帮帮忙,先谢谢啦!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • WWWWA
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      6

    发表于:2008-08-22 11:14:194楼 得分:4
    就是下一条记录与前一条(多条)记录的字段1-3的对比,统计次数?周一试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Raiky007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:15:365楼 得分:0
    先谢谢你!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wwwwb
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 9

      10

      12

    发表于:2008-08-25 10:06:336楼 得分:5
    try:
    SELECT a.id,a.f1,a.f2,a.f3,
    sum(iif(instr(',' & a.f1 & ',' & a.f2 & ',' & a.f3 & ',',',' & nz(b.f1,'') &',')>0,1,0))+
    sum(iif(instr(',' & a.f1 & ',' & a.f2 & ',' & a.f3 & ',',',' & nz(b.f2,'') &',')>0,1,0))+
    sum(iif(instr(',' & a.f1 & ',' & a.f2 & ',' & a.f3 & ',',',' & nz(b.f3,'') &',')>0,1,0)) as dd
    from ttp a
    left join ttp b
    on a.id>b.id
    group by a.id,a.f1,a.f2,a.f3 order by a.id

    上述方法是比较简单,要达到
    没有相同0次
              有一个数相同0次
              有两个数相同6次//ID2与ID1比较有1次,3与2、1有2次,4与3、2、1有3次
              有三个数相同0次
    你的要求,比较麻烦
    两个数相同:一条记录要判断6次,比如:下一条F1、F2要判断前一条(多条)记录的:
    F1、F2 F2、F1 F1、F3 F3、F1 F2、F3 F3、F2,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Raiky007
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 14:57:197楼 得分:0
    是啊,我自己也知道这个实现比较麻烦,主要是判断太多,可是又不知道有什么好方法可以实现,有时候想在程序实现吧(我这个TABLE是要联接程序的),但循环太多,判断太多!不太理想!所以上来找大家帮帮忙!另外一个原因是,我只学过C++以及MFC.其它语言不太了解!!!
    不过谢谢你啦!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved