多表查询统计问题!求SQL语句!!!!
在三个表中查询统计
表main1
id empcode
01 6001
02 6002
03 6001
04 6002
表main2
id empcode
01 6003
02 6003
03 6001
04 6002
表code
empcode 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
但是两个表的数量加起来该怎么做呢?
请高手相助!
问题点数:50、回复次数:8Top
1 楼libin_ftsafe(子陌红尘(TS for Banking Card))回复于 2006-06-01 17:35:47 得分 20
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) descTop
2 楼paoluo(一天到晚游泳的鱼)回复于 2006-06-01 17:39:52 得分 5
group by c.empcode
改為
group by c.empcode,c.empname
Top
3 楼xeqtr1982(Visual C# .NET)回复于 2006-06-01 17:39:58 得分 25
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' ,6002
declare @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' ,6002
declare @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) descTop
4 楼xeqtr1982(Visual C# .NET)回复于 2006-06-01 17:40:58 得分 0
慢了这么多,考虑以后是否不写测试数据了Top
5 楼hjb33(编程浪仔)回复于 2006-06-01 23:03:27 得分 0
大家好,
你们写的语句是不是在SQLSERVER2000里运行的啊?
我的数据库是SYBASE的
我在PB里运行会出错啊!
Top
6 楼hjb33(编程浪仔)回复于 2006-06-01 23:11:44 得分 0
是不是sybase 数据库不支持union all啊?
Top
7 楼hjb33(编程浪仔)回复于 2006-06-01 23:12:50 得分 0
还有是不是SYBASE数据库不支持FROM 后面带子集?Top
8 楼kuakesjm()回复于 2006-06-02 17:23:41 得分 0
哪就别有SyBase呀Top




