输出结果集是什么格式?ID age percent_age num_age sex precent_sex num_sex ...
-------------------------------------------------------------------------
-------------------------------------------------------------------------
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*/
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