有单位表(dwtable)和人员表(rytable),之间通过单位代码(dwdm)关联,
要列出所有单位和该单位的人员数,sql查询语句该如何写?

解决方案 »

  1.   

    select a.name ,count(*) from dwtable a,rytable b where     a.dwdm=b.dwdm  group by a.name
      

  2.   

    select * from dwtable, rytable where dwtable.dwdm = rytable.dwdm
      

  3.   

    select a.单位名称,count(b.人名) from  dwtable a,rytable b  where a.dwdm=b.dwdm group by a.单位名称
      

  4.   

    用外连接
    select a.dwmc,count(b.Name) from  dwtable a left join rytable b  
     on a.dwdm=b.dwdm group by a.dwmc
      

  5.   

    注意,要用count(b.Name) ,不要用count(*) ;
    否则,没有人员的单位的人数的统计值是1 。上面的语句只针对Sql Server,假设是Oracle 则
    select a.dwmc,count(b.Name) from  dwtable a,rytable b  
     where b.dwdm(+)=a.dwdm group by a.dwmc
      

  6.   

    ft
    用外连接啊!
    select * from dwtable, rytable where dwtable.dwdm *= rytable.dwdm
                                                     ^^^^^^
      

  7.   

    select  a.单位,sum(B.人数)  from 单位 a  left outer join 
    人员 b  on a.单位号=b.单位号  group by a.单位