select count(*)   from 
(
select * from m_Farmerrecedit_2010 where (farmercode like '55202%') 
union all 
select * from m_Farmer_2010 t
where farmercode not in(select farmercode from m_Farmerrecedit_2010 where farmercode like '55202%')
) a

解决方案 »

  1.   

    把not in 改成exists试试
    ...
    select * from m_Farmer_2010 t
    where not exists(select 1 from m_Farmerrecedit_2010 m where farmercode like '55202%'
          and m.farmercode =t.farmercode)
      

  2.   

    with aa as (select * from m_Farmerrecedit_2010 where farmercode like '55202%')
    select count(*) from 
    (select * from aa 
    union all
    select * from m_Farmer_2010 t where not exists(select null from aa where 
    aa.farmercode=t.farmercode)
    )