现有两个表,一个是录取库,称为 lqk_table,另一个是学籍信息表:xj_table,
学籍表是录取库的一个子集,他们都有字段ksh,xm,rxnf,yxmc, cc这几个字段,现在要审核学籍表,要求找出那些ksh,xm,rxnf,yxmc, cc这几个字段与录取库lqk_table中的着几个字段值不完全相同的记录,最后生成的结果要求生成审核未通过的原因,即是哪个字段错了!
请各位高手指点一下。
学籍表是录取库的一个子集,他们都有字段ksh,xm,rxnf,yxmc, cc这几个字段,现在要审核学籍表,要求找出那些ksh,xm,rxnf,yxmc, cc这几个字段与录取库lqk_table中的着几个字段值不完全相同的记录,最后生成的结果要求生成审核未通过的原因,即是哪个字段错了!
请各位高手指点一下。
解决方案 »
- oracle last_value()over() 和first_value()over() 怎么使用
- 急!分区表建在日期字段上,主键是其他字段,在每个分区上物理数据顺序是怎样?
- oracle数据存储过程
- 大家帮我看这条sql语句该如何写了
- 请问oracle里对应mssql里addday()的函数是什么?
- 如何用sqlplus执行一个sql文件
- 新手请教:sql语句中如何选择日期格式为"2005-2-21"的字段?
- ***请教oracle9i以sys/change_on_install登陆遇到的问题***
- 请问oracle8.05中的schema manage在8。15中怎么没有?
- 求一个oracle事务 保存点 回滚 提交的例子
- SQL command not properly ended的错误
- oracle ref 引用问题
minus
select ksh,xm,rxnf,yxmc, cc from xj_table a,lqk_table b Where a.ksh=b.ksh
and a.xm=b.xm and a.rxnf=b.rxnf and a.yxmc=b.yxmc and a.cc=b.cc
mantisXF,我还不会写存储过程。
shan1119说设置主键的意见倒是可行,那样处理起来可能会简单一些。谢谢各位了!
select xj.rowid
from xj_table xj, lqk_table lqk
where xj.ksh = lqk.ksh
and xj.xm =lqk.xm
and xj.rxnf=lqk.rxnf
and xj.yxmc=lqk.yxmc
and xj.cc=lqk.cc)
不知道这样行不?
from xj_table
where convert(varchar(50),ksh)+convert(varchar(50),xm)+convert(varchar(50),rxnf)+convert(varchar(50),yxmc)+convert(varchar(50),cc) not in
(
select convert(varchar(50),a.ksh)+convert(varchar(50),a.xm)+convert(varchar(50),a.rxnf)+convert(varchar(50),a.yxmc)+convert(varchar(50),a.cc)
from lqk_table a,xj_table b
where convert(varchar(50),a.ksh)+convert(varchar(50),a.xm)+convert(varchar(50),a.rxnf)+convert(varchar(50),a.yxmc)+convert(varchar(50),a.cc)=
convert(varchar(50),b.ksh)+convert(varchar(50),b.xm)+convert(varchar(50),b.rxnf)+convert(varchar(50),a.yxmc)+convert(varchar(50),b.cc)
)
select xj_table.*
from xj_table, lqk_table
where xj_table.ksh = lqk_table.ksh(+)
and xj_table.xm = lqk_table.xm(+)
and xj_table.rxnf = lqk_table.rxnf(+)
and xj_table.yxmc = lqk_table.yxmc(+)
and xj_table.cc = lqk_table.cc(+)
and lqk_table.PK is null
注:lqk_table.PK 也可以用lqk_table表中,不允许为空的字段代替