注册 登录
编程论坛 SQL Server论坛

怎样实现多表使用COUNT()函数???

lingchen 发布于 2008-01-07 20:34, 3575 次点击
比如说,我有两张存放相同数据信息的表:A

编号        姓名    数量
9011    胡家斌    5
9024    吴桂敏    241
9025    梁伟杰    348
9026    刘丽芬    318

B:
编号       姓名      数量
9017    郑文亮    79
9020    李志成    160
9024    吴桂敏    270
9025    梁伟杰    111
9026    刘丽芬    275
9027    钟键兴    348
9028    李春映    293
9038    刘潘川    330
9039    陈杰武    184
我要将这两张表做一个汇总的统计出那个人那个编号,总的数据量是多少,,,,要显示这两张表的所有人和总的数量比如说
C:
编号     姓名        数量
9026    刘丽芬      593


请问这样的SQL语句怎样写可以实现呢?请教各位高手!
4 回复
#2
purana2008-01-07 21:57
create table ta(编号 int,姓名 nvarchar(10),数量 int)
insert into ta select 9011,    '胡家斌'  ,  5
insert into ta select 9024 ,   '吴桂敏'  ,  241
insert into ta select 9025  ,  '梁伟杰' ,   348
insert into ta select 9026   , '刘丽芬',    318

create table tb(编号 int,姓名 nvarchar(10),数量 int)
insert into tb select 9017,    '郑文亮',    79
insert into tb select 9020 ,   '李志成',    160
insert into tb select 9024  ,  '吴桂敏',    270
insert into tb select 9025   , '梁伟杰',    111
insert into tb select 9026    ,'刘丽芬',    275
insert into tb select 9027    ,'钟键兴',    348
insert into tb select 9028    ,'李春映',    293
insert into tb select 9038    ,'刘潘川',    330
insert into tb select 9039    ,'陈杰武',    184

select 编号,姓名,sum(数量) 数量
from
(
    select 编号,姓名,数量 from ta
    union all
    select 编号,姓名,数量 from tb
) a
group by 编号,姓名
order by 编号

drop table ta,tb

/*
编号          姓名         数量         
----------- ---------- -----------
9011        胡家斌        5
9017        郑文亮        79
9020        李志成        160
9024        吴桂敏        511
9025        梁伟杰        459
9026        刘丽芬        593
9027        钟键兴        348
9028        李春映        293
9038        刘潘川        330
9039        陈杰武        184

(所影响的行数为 10 行)
*/
#3
provoke2008-01-07 23:00

select A.编号,A.姓名,数量=count(A.数量)+count(B.数量)
from A,B
where A.编号=B.编号

建立临时表就同有必要了
#4
lingchen2008-01-08 14:43
好的!谢谢两位了!!!
#5
jznhljg2008-07-24 01:26
我很想问下purana版主....你的那个CREATE 和INSERT 语句全是自己手打一遍进去..??我在论坛上看到很多小题目.都是嫌麻烦,没建表测试想法...所以十分想知道你是怎么做的?有别的快捷办法??
1