日期:2014-05-18  浏览次数:20469 次

SQL 银行数据两表嵌套查询 分行显示的问题 高手来!
职业关系 我们经常都会审核下级社上报的报表 比如有怎么一张大额授信贷款表 :字段为 1、机构代码,2、客户名称 3、法人名称 4、法人身份证 5、授信金额 6、贷款余额 ;现在有2张表 分别是 上月表 和本月表 

  上月表 本月表
 766055646 金宇公司 王松 520113XXX 200万 100万 766055646 金宇公司 王德贵 520113XXX 200万 100万 709684964 立云公司 李云 522525XXX 5000万 2000万 709684964 立云公司 李云 522525XXX 5000万 2000万
50150327 稀矿公司 于林 5105221XX 600万 200万 50150327 稀矿公司 于林 5105221XX 800万 500万 
   
 722137623 水晶公司 安国 5306227XX 3000万 800万 730975766 金昌公司 韩丽 537526XXX 7000万 200万 

  现在想查找本月和上月都有的公司 ,并且法人或授信或贷款余额有变化的 关键是要 显现2个月的数据 我们好对比
  查询结果:
  766055646 金宇公司 王松 520113XXX 200万 100万 
  766055646 金宇公司 王德贵 520113XXX 200万 100万 
  50150327 稀矿公司 于林 5105221XX 600万 200万
  50150327 稀矿公司 于林 5105221XX 800万 500万 
  以前曾经用 select 上月表.* ,本月表.* from 上月表,本月表 where 上月表.机构代码=本月表.机构代码 and(
上月表.法人<>本月表.法人 or 上月表.授信<>本月表.授信 )但是还是达不到上面那种效果它是显示一行 求高手!
 

------解决方案--------------------
SQL code
select * ,'本月表' as 来源
from 本月表
where exists (
  select 1 from 上月表
  where 上月表.机构代码=本月表.机构代码 and(
上月表.法人<>本月表.法人 or 上月表.授信<>本月表.授信 )
)
union all
select * ,'上月表' as 来源
from 上月表
where exists (
  select 1 from 本月表
  where 上月表.机构代码=本月表.机构代码 and(
上月表.法人<>本月表.法人 or 上月表.授信<>本月表.授信 )
)
order by id