2.接下来确定数据“关键字”部分,即能够唯一标识记录的关键字组合,这样就可以在进行数据对比时,能够唯一的标记一条记录。比如,如图所示的“ID”和“姓名”就可以唯一标识一条记录。
3.接下来,还要确定一下,各个工作表数据行的范围以及要进行对比的关键字所在的位置信息。如图可知,
员工基础报表中数据范围为“3至12行”,关键字所在的位置为(i行1列)和(i行2列)。
员工待遇统计表中数据范围为“3至11行”,关键字所在的位置为(i行1列)和(i行2列)。
4.要做的就是从表1中找出表2中已经存在的记录,并且做好相应的标记,以便供查看。为此,按键盘上的快捷组合键“Alt+F11”进入VBA编辑模式。或者切换至“开发工具”选项卡,点击“Visual Basic”按钮进入VBA环境。
有关“开发工具”选项卡的打开方法请参考栏目二部分。
5.右击“Microsoft Excel对象”,从d出的右键菜单中选择“插入”->“模块”项。
6.接着输入如图所示的代码:
Sub 数据对比()
Dim i As Integer
Dim j As Integer
For i = 3 To 12'员工基础报表数据范围
For j = 3 To 11'员工待遇统计表数据范围
If Sheets("员工基础报表").Cells(i, 1) = Sheets("员工待遇统计表").Cells(j, 1) Then
If Sheets("员工基础报表").Cells(i, 2) = Sheets("员工待遇统计表").Cells(j, 2) Then
Sheets("员工基础报表").Cells(i, 8) = "已存在" '存在时进行标记
End If
End If
Next j
Next i
End Sub
7.然后点击工具栏上的“调试运行”按钮。
8.待子过程运行结束后,返回Excel工作表进行查看,就会发现对比结果已经出来啦。基于此,可以进行更近一步的数据处理 *** 作。顺便也将另一张工作表中的记录一同展示出来,以供参考。
select table1.*,table2.* from table1,table2 where soundex(A01)=soundex(A02)你的问题很怪的。两张没有什么关系的表。要么不要联接,或者用UNION
Sql Server 环境,如果环境不对, 自己参考思路去修改吧select * into #temp1 from table1 where len(col1) >5 and len(col2) >5
select * into #temp_end from #temp1 where 1=3
Declare @i int,@ii int
Declare @uid int,@col1 varchar(255),@col2 varchar(255)
Declare Fetch_Query_Cursor cursor for select UID,col1,col2 from #temp1
Open Fetch_Query_Cursor
Fetch Next From Fetch_Query_Cursor into @uid,@col1,@col2
while @@Fetch_status = 0
begin
select @i = 1,@ii=0
while @i<=len(@col1)
begin
if charindex(substring(@col1,@i,1),@col2) >0
select @ii = @ii+1
select @i = @i+1
end
If @ii >=5
Insert into #temp_end select * from #temp1 where Uid = @uid
Fetch Next From Fetch_Query_Cursor into @uid,@col1,@col2
end
Close Fetch_Query_Cursor
Deallocate Fetch_Query_Cursor
Select * from #temp_end
Drop table #temp1
Drop table #temp_end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)