表一(table1)
   DWMC1        DWDH1           NO1      
  xx公司       100             1            
  
 表二(table2)
  
  DWMC2        DWDH2          NO2            
  xx公司       200             2 现在要将表一和表二中的数据进行核对,统计,
表一和表二中数据的交集是有证明,有担保的数据(字段名:YZYD)
表一有而表二中没有是有证明,无担保的数据,(字段名:YZWD)
表一无而表二中有是无证明,有担保的数据,(字段名:WZYD)  现在要求写一条存储过程,将表一和表二中的数据进行核对,统计
,将核对,统计后的数据,插到如下 表三(table3)中的临时表中
  表三(table3)
  DWMC3   DWDH3   NO3   YZYD  YZWD  WZYD

解决方案 »

  1.   

    create or replace procedure procedure_name is
    begin
    insert into table3( DWMC3, DWDH3, NO3, YZYD)
    select  DWMC1, DWDH1, NO1, '表一和表二中数据的交集是有证明,有担保的数据'
    from table1 t1
    where exists (select 1 from table2 t2 where t1.DWMC1=t2.DWMC2 and
     t1.DWDH1=t2.DWDH2 and t1.NO1=t2.NO2);insert into table3( DWMC3, DWDH3, NO3, YZWD)
    select  DWMC1, DWDH1, NO1, '表一有而表二中没有是有证明,无担保的数据'
    from table1 t1
    where not exists (select 1 from table2 t2 where t1.DWMC1=t2.DWMC2 and
     t1.DWDH1=t2.DWDH2 and t1.NO1=t2.NO2);insert into table3( DWMC3, DWDH3, NO3, WZYD)
    select  DWMC2, DWDH2, NO2, '表一无而表二中有是无证明,有担保的数据'
    from table2 t2
    where not exists (select 1 from table1 t1 where t1.DWMC1=t2.DWMC2 and
     t1.DWDH1=t2.DWDH2 and t1.NO1=t2.NO2);end;
      

  2.   


     你好,ZZWIND5,多谢你的回复,可得到的结果和我要求的有点不一样,
    按照你这样查询得到的表的结构才4个字段,和我要的是统计后的6个字段,  我认为,是不是应该定义3个变量来实现
        
              YZWD:=0;
              WZYD :=0;
              YZYD:=0;
      

  3.   


      
       表三(table3)中字段YZYD  YZWD  WZYD是核对后统计出来的个数来的