如何将多次组合查询的内容集合输出?

powbcom 2006-03-27 11:15:35

如:

if @Field = 'birth'
SELECT DATEDIFF(yy, birth, GETDATE()) AS age, RTRIM(COUNT(*) * 100 /
(SELECT COUNT(1)
FROM RD_member)) + '%' AS [percent], COUNT(*) AS num
FROM RD_member
GROUP BY DATEDIFF(yy, birth, GETDATE())
将查询结果插入一个临时表中,对应ID,Field,percent,num

if @Field = 'sex'
SELECT sex, RTRIM(COUNT(*) * 100 /
(SELECT COUNT(1)
FROM RD_member)) + '%' AS [percent], COUNT(*) AS num
FROM RD_member
GROUP BY sex
将查询结果插入一个临时表中,对应ID,Field,percent,num

根据条件将多次查询的结果一起输出,怎么来做?
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
520zyb 2006-03-27
  • 打赏
  • 举报
回复
create table #tmp(ID int ,Field varchar(20),percent varchar(10),num int)

if @Field = 'birth'
insert #tmp(Field,percent,num)
SELECT DATEDIFF(yy, birth, GETDATE()) AS age, RTRIM(COUNT(*) * 100 /
(SELECT COUNT(1)
FROM RD_member)) + '%' AS [percent], COUNT(*) AS num
FROM RD_member
GROUP BY DATEDIFF(yy, birth, GETDATE())


if @Field = 'sex'
insert #tmp(Field,percent,num)
SELECT sex, RTRIM(COUNT(*) * 100 /
(SELECT COUNT(1)
FROM RD_member)) + '%' AS [percent], COUNT(*) AS num
FROM RD_member
GROUP BY sex


select * from #tmp
drop table #tmp
rivery 2006-03-27
  • 打赏
  • 举报
回复
--如果楼主是想把两种查询用一个sql语句处理输出?可以试试下面的。
declare @rd_memeber table(id int,birth datetime,sex varchar(10))
insert into @rd_memeber
select 1,'1990-1-1','女' union
select 2,'1991-1-1','男' union
select 3,'1993-1-1','女' union
select 4,'1991-1-1','女' union
select 5,'1990-1-1','男' union
select 6,'1993-1-1','女' union
select 7,'1990-1-1','女'

declare @field varchar(20)
select @field='birth'
--此处可以加入插入语句 insert into ....
SELECT case @field when 'birth' then convert(varchar,DATEDIFF(yy, birth, GETDATE())) else sex end AS col, RTRIM(COUNT(*) * 100 /
(SELECT COUNT(1)
FROM @rd_memeber)) + '%' AS [percent], COUNT(*) AS num
FROM @rd_memeber
GROUP BY case @field when 'birth' then convert(varchar,DATEDIFF(yy, birth, GETDATE())) else sex end

/*结果
13 28% 2
15 28% 2
16 42% 3

*/
子陌红尘 2006-03-27
  • 打赏
  • 举报
回复
输出结果集是什么格式?

ID age percent_age num_age sex precent_sex num_sex ...
-------------------------------------------------------------------------

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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