以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- sql 语句 update 漏了很多符合条件的记录 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127190) |
-- 作者:zhouhai39 -- 发布时间:2018/11/7 22:24:00 -- sql 语句 update 漏了很多符合条件的记录 在工作中执行SQL用update语句进行数据比对时,出现大面积遗漏(4218条符合条件记录仅能筛选出1867条遗漏超过50%)是什么回事?怎么办? 语句:UPDATE {全市学籍系统信息_20180822},{2018年秋季学期高中在校生名单} SE T {2018年秋季学期高中在校生名单}.是否是在系统=\'是\' WHERE {全市学籍系统信息_20180822}.证件号码={2018年秋季学期高中在校生名单}.学生身份证号
请问是什么原因?怎么办?谢谢! [此贴子已经被作者于2018/11/7 22:27:04编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/7 22:41:00 -- select 连接查询一下两表,看查出来的数据有多少。 |
-- 作者:zhouhai39 -- 发布时间:2018/11/7 23:22:00 -- 麻烦老师说具体点(我是初学者),其中一个数据表数据较多,有几十万条,谢谢! |
-- 作者:有点甜 -- 发布时间:2018/11/8 8:49:00 -- 比如执行这个代码连接,看匹配的结果,如果匹配只有1867行,说明你数据本身就是不匹配的,具体原因,参考第二条sql语句
Select * from {全市学籍系统信息_20180822} As a Inner join {2018年秋季学期高中在校生名单} As b on a.证件号码=b.学生身份证号
Select a.证件号码, b.学生身份证号, * from {全市学籍系统信息_20180822} As a left join {2018年秋季学期高中在校生名单} As b on a.证件号码=b.学生身份证号
如果还不会做,实例发上来测试。 |
-- 作者:zhouhai39 -- 发布时间:2018/11/8 23:43:00 -- 我发现是数据的类型出了问题,在导入aecc 的源文件excel文件中,身份证号码尽管都是显示的都是文本类型,但我用“数据-分列-文本”转换时,却有些变成了数字型,巧好是这些数据没能比对出来,估计就是数据类型不匹配,但我不懂如何将这些数据转换成与其他数据的类型相一致,网上说的转换方法都用了,就是不行。谢谢! [此贴子已经被作者于2018/11/8 23:43:27编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/9 8:54:00 -- 1、看你数据库里面(access)的数据是否正确,是否匹配。执行4楼sql语句测试对比。
2、如果access里面没有数据,说明你从excel里面导入的时候没有把数据导入进去。
3、你尝试把你的excel文件另存为txt,然后再倒入access里面看看。 |
-- 作者:zhouhai39 -- 发布时间:2018/11/10 17:28:00 -- 谢谢!有数据,应该是数据类型不匹配,在未导入access前的Excel中就有些又蓝点有些没用,(但经过数据--分列--文本还是没有变成有蓝点的),后来是导入access后有把它导出Excel然后再导入access,再比对就可以了,可能是反复导入导出后数据类型都变成文本了。谢谢! |