SQL怎么写?
A B
1 JJ
2 KK
3 LL
4 KK
5 LL
6 KK
7 KK
8 LL
要得到
JJ KK LL
1 4 3
也就是分别求数量
问题点数:20、回复次数:5Top
1 楼xluzhong(Ralph)回复于 2005-02-25 11:33:43 得分 3
http://blog.csdn.net/xluzhong/articles/277879.aspxTop
2 楼zrtl(刚从软件园回来)回复于 2005-02-25 11:45:38 得分 5
SELECT (SELECT COUNT(*) FROM TABLE1 WHERE B='JJ') AS JJ,
(SELECT COUNT(*) FROM TABLE1 WHERE B='KK') AS KK,
(SELECT COUNT(*) FROM TABLE1 WHERE B='LL') AS LLTop
3 楼Softlee81307(孔腎)回复于 2005-02-25 11:45:52 得分 10
create table tk(A int, B varchar(2))
insert into tk
select 1 ,'JJ' union all
select 2 ,'KK' union all
select 3 ,'LL' union all
select 4 ,'KK' union all
select 5 ,'LL' union all
select 6 ,'KK' union all
select 7 ,'KK' union all
select 8 ,'LL'
-------------下面是實現語句--------
Declare @s varchar(1000),@b varchar(1000)
set @s='select '
set @b='select '
select @s=@s+''''+b+''''+',' ,@b=@b+''''+cast(a as varchar(2))+''',' from
(select b,a=count(b) from tk group by b) d
select @s=left(@s,len(@s)-1)+' Union all '+ left(@b,len(@b)-1)
exec( @s)
----------------結果---------------------------------
JJ KK LL
1 4 3Top
4 楼hsj20041004(光芒)回复于 2005-02-25 11:46:07 得分 0
select B ,sum(B) from table group by BTop
5 楼zheninchangjiang(徐若涵)回复于 2005-02-25 11:50:00 得分 2
declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+b+'=sum(case when b='''+b+''' then 1 end),'
from (select distinct b as b from [tablename]) a
set @sql=substring(@sql,1,len(@sql)-1)
set @sql=@sql+' from [tablename]'
exec(@sql)Top




