Foxtable(狐表)用户栏目专家坐堂 → 表与表之间列值对比问题


  共有8084人关注过本帖树形打印复制链接

主题:表与表之间列值对比问题

帅哥哟,离线,有人找我吗?
zmagood
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
表与表之间列值对比问题  发帖心情 Post By:2013/4/2 0:22:00 [只看该作者]

A、B表中均含A列及日期列。同一天中A、B表中的A列各有多个值。
问题:A表A列的值与B表A列的值按日期条件(同一天)进行对比,找出不同的值,并在C表(比较表)中新增行把A表与B表不同值按各表的日期显示出来。求方法!

 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/2 8:32:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
zmagood
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/2 14:19:00 [只看该作者]

谢谢,很不错。继续请教:
A表第一列有值:2,2,2,3,3,6
B表第一列有值:2,2,3,3,6,6
对A表B进行对比:A、B表中相同值有2、3、6(即A中2值3个,3值2个,6值1个, B中2值2个,3值2个,6值2个。 )
C表中我想实现:
A中比B多1个2,C表新增行输出1个2
A中比B一样多,C表不输出3
A中比B少1个6,C表新增行输出1个6
即:在C表中去除A、B表中相同个数的相同值,余下个数的相同值和不同值均在C表新增行显示出来。
[此贴子已经被作者于2013-4-2 14:30:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zmagood
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/2 14:27:00 [只看该作者]

狐爸解决一下

 回到顶部
帅哥哟,离线,有人找我吗?
XYT
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1418 积分:7167 威望:0 精华:0 注册:2013/3/18 8:37:00
  发帖心情 Post By:2013/4/2 14:43:00 [只看该作者]

思路就是先得到数的个数,判断是否相等,如果不是就输出这个数

 回到顶部
帅哥哟,离线,有人找我吗?
zmagood
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/2 14:55:00 [只看该作者]

如何实现啊?求教!

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 15:16:00 [只看该作者]

Dim strs() As String= Tables("表A").Rows(0)("第一列").Split(",")
Dim strList As New Dictionary(of String,Integer)
For i As Integer=0 To strs.length-1
   If Not strList.ContainsKey(strs(i)) Then
      strList.Add(strs(i),0)
   End If 
Next
For i As Integer=0 To strs.length-1
    strList(strs(i))=strList(strs(i))+1
Next

Dim strs2() As String= Tables("表B").Rows(0)("第一列").Split(",")
Dim strList2 As New Dictionary(of String,Integer)
For i As Integer=0 To strs2.length-1
  If Not strList2.ContainsKey(strs2(i)) Then
      strList2.Add(strs2(i),0)
   End If 
Next
For i As Integer=0 To strs2.length-1
    strList2(strs2(i))=strList2(strs2(i))+1
Next

For Each item As String In strList.Keys
  Dim dr As Row= Tables("表C").AddNew()
  dr("第一列")=strList(item)-strList2(item)
Next
搞定
以上代码少点重复代码。可以考虑写成函数 便于维护修改 减少代码冗余。

 回到顶部
帅哥哟,离线,有人找我吗?
zmagood
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/2 15:16:00 [只看该作者]

在线等待啊, 狐爸解决一下吧

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/2 15:18:00 [只看该作者]

看楼上 已经帮你写好了

 回到顶部
帅哥哟,离线,有人找我吗?
zmagood
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:724 威望:0 精华:0 注册:2013/3/27 13:32:00
  发帖心情 Post By:2013/4/2 15:28:00 [只看该作者]

谢谢,正在测试
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:测试项目.table

可以帮我写进去吗?我是初学者,才接触一周时间!
[此贴子已经被作者于2013-4-2 16:00:35编辑过]

 回到顶部
总数 13 1 2 下一页