在三个表中查询统计表main1id     empcode    
01       6001
02       6002
03       6001
04       6002表main2id     empcode    
01       6003
02       6003
03       6001
04       6002表codeempcode  empname
6001      张三   
6002      李四
6003      王五表一表二结构完全一样,均是录入员录入的记录,empcode是录入员代码
现在想统计出每个录入员在表一和表二中录入数据的总数
如表:empcode  empname   录入数量
6001      张三       3
6002      李四       3
6003      王五       2
请教用一个SQL语句如何可以得到结果我写了单独统计一个表的语句,是可行的select c.empcode,c.empname,count(a.id)
from main1 a,code c
where c.empcode=a.empcode
group by c.empcode
order by count(a.id) desc但是两个表的数量加起来该怎么做呢?
请高手相助!

解决方案 »

  1.   

    select c.empcode,c.empname,count(a.id)
    from (select * from main1 union all select * from main2) a,code c
    where c.empcode=a.empcode
    group by c.empcode
    order by count(a.id) desc
      

  2.   

    group by c.empcode
    改為
    group by c.empcode,c.empname
      

  3.   

    declare @T table(id varchar(10),empcode int)
    insert into @t select '01'       ,6001
    union all select '02'       ,6002
    union all select '03'       ,6001
    union all select '04'       ,6002declare @a table(id varchar(10),empcode int)
    insert into @a select '01'       ,6003
    union all select '02'       ,6003
    union all select '03'       ,6001
    union all select '04'       ,6002declare @b table(empcode int,empname varchar(10))
    insert into @b select 6001      ,'张三'   
    union all select 6002      ,'李四'
    union all select 6003      ,'王五'select c.empcode,c.empname,count(a.id) as 录入数量
    from (select * from @t union all select * from @a) a,@b c
    where c.empcode=a.empcode
    group by c.empcode,c.empname
    order by count(a.id) desc
      

  4.   

    大家好,
    你们写的语句是不是在SQLSERVER2000里运行的啊?
    我的数据库是SYBASE的
    我在PB里运行会出错啊!
      

  5.   

    是不是sybase 数据库不支持union all啊?
      

  6.   

    还有是不是SYBASE数据库不支持FROM 后面带子集?