lingchen 发布留言 2008-1-7 20:34
怎样实现多表使用COUNT()函数???
比如说,我有两张存放相同数据信息的表: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语句怎样写可以实现呢?请教各位高手!
purana 发布留言 2008-1-7 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 行)
*/
provoke 发布留言 2008-1-7 23:00
select A.编号,A.姓名,数量=count(A.数量)+count(B.数量)
from A,B
where A.编号=B.编号
建立临时表就同有必要了
lingchen 发布留言 2008-1-8 14:43
好的!谢谢两位了!!!
jznhljg 发布留言 2008-7-24 01:26
我很想问下purana版主....你的那个CREATE 和INSERT 语句全是自己手打一遍进去..??我在论坛上看到很多小题目.都是嫌麻烦,没建表测试想法...所以十分想知道你是怎么做的?有别的快捷办法??
页: [1]