一张表,如何合并两个查询的结果?

albert_skynet 2008-08-07 06:27:26
表TA,
列a char(20),
b int,
c int,
d int,

CREATE TABLE [TA](
[a] [char](20) ,
[b] [int] ,
[c] [int] ,
[d] [int]
)

insert into [TA]
select '12',12,12,12 union all
select '12',12,12,12 union all
select '12',12,12,12 union all
select '13',13,13,13 union all
select '13',13,13,13 union all
select '14',14,14,14 union all
select '1',1,1,1 union all
select '5',5,5,5


查询1: select a,sum(b) as sumB,count(*) as Total from TA group by a
查询2:select a,count(*) as Num from TA where c>2

查询1显示字段: a,sumB,Total  
查询2显示字段: a,Num
查询2的结果,字段a的值是查询1的子集
可不可实现 结果为: a,sumB,Total,Num ,如果Num为空显示为0
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
水族杰纶 2008-08-07
  • 打赏
  • 举报
回复
use db_study
go
if not object_id('[TA]') is null
drop table [TA]
go
CREATE TABLE [TA](
[a] [char](20) ,
[b] [int] ,
[c] [int] ,
[d] [int]
)
insert into [TA]
select '12',12,12,12 union all
select '12',12,12,12 union all
select '12',12,12,12 union all
select '13',13,13,13 union all
select '13',13,13,13 union all
select '14',14,14,14 union all
select '1',1,1,1 union all
select '5',5,5,5
go
select a,sum(b) as sumB,count(*) as Total,0 as num from TA group by a
union all
select a,0,0,count(*) as Num from TA where c>2 group by a

a sumB Total num
1 1 1 0
12 36 3 0
13 26 2 0
14 14 1 0
5 5 1 0
12 0 0 3
13 0 0 2
14 0 0 1
5 0 0 1

(所影响的行数为 9 行)
albert_skynet 2008-08-07
  • 打赏
  • 举报
回复
多谢
-狙击手- 2008-08-07
  • 打赏
  • 举报
回复
select a,sum(b) as sumB,count(*) as Total,0 as num from TA group by a
union all
select a,0,0,count(*) as Num from TA where c>2

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧