我有两个表,需要连表查询
表a,语句
select ZYSZ_JLTJSJ1,count(distinct ZYSZ_ZYDM) from SJ_ZYSZ where ZYSZ_SJLQS1<ZYSZ_JHZSS1 GROUP BY ZYSZ_JLTJSJ1
产生两个字段,一个是记录时间,一个是COUNT数
如这样的数据: 2008  34
              2009  30表b,语句
select ZYSZ_JLTJSJ1,count(distinct ZYSZ_zydm) from SJ_ZYSZ where ZYSZ_JHZSS1>0  GROUP BY ZYSZ_JLTJSJ1
也是产生两个字段,一个是记录时间,一个是COUNT数
如这样的数据: 2008  3
              2009  4
              2010  3我现在要得到一张这样数据结构的表
            2008 34 3
            2009 30 4
把这两个表连起来求教怎么写

解决方案 »

  1.   

    select ZYSZ_JLTJSJ1,count(distinct ZYSZ_ZYDM) from SJ_ZYSZ where ZYSZ_SJLQS1<ZYSZ_JHZSS1 GROUP BY ZYSZ_JLTJSJ1union allselect ZYSZ_JLTJSJ1,count(distinct ZYSZ_zydm) from SJ_ZYSZ where ZYSZ_JHZSS1>0 GROUP BY ZYSZ_JLTJSJ1
    注: union all  不过滤重复数据!  union 过滤
      

  2.   

    inner join 或者在select里子查询
      

  3.   

    select
       *
    from
      (select ZYSZ_JLTJSJ1,count(distinct ZYSZ_ZYDM) from SJ_ZYSZ where ZYSZ_SJLQS1<ZYSZ_JHZSS1 GROUP BY ZYSZ_JLTJSJ1)a
    join
      (select ZYSZ_JLTJSJ1,count(distinct ZYSZ_zydm) from SJ_ZYSZ where ZYSZ_JHZSS1>0 GROUP BY ZYSZ_JLTJSJ1)b
    on
       a.ZYSZ_JLTJSJ1=b.ZYSZ_JLTJSJ1
      

  4.   


    select
       *
    from
      (select ZYSZ_JLTJSJ1,count(distinct ZYSZ_ZYDM) as znt from SJ_ZYSZ where ZYSZ_SJLQS1<ZYSZ_JHZSS1 GROUP BY ZYSZ_JLTJSJ1)a
    join
      (select ZYSZ_JLTJSJ1,count(distinct ZYSZ_zydm) as cnt from SJ_ZYSZ where ZYSZ_JHZSS1>0 GROUP BY ZYSZ_JLTJSJ1)b
    on
       a.ZYSZ_JLTJSJ1=b.ZYSZ_JLTJSJ1