CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

SQL怎么写?

楼主myh123456(风)2005-02-25 11:26:10 在 MS-SQL Server / 基础类 提问

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

相关问题

  • sql怎么写
  • sql怎么写?
  • sql 怎么写?
  • 这句SQL 怎么写? (SQL SERVER)
  • 这句SQL 怎么写? (SQL SERVER)
  • sql语句怎么写?
  • 这句SQL怎么写?
  • 这个sql怎么来写??
  • 这个sql怎么写呢?????????????????!!!!!!!!!!!!!!
  • 初学SQL 怎么写?

关键词

  • kk
  • union allselect
  • jj
  • ll
  • varchar
  • count
  • where
  • table
  • select

得分解答快速导航

  • 帖主:myh123456
  • xluzhong
  • zrtl
  • Softlee81307
  • zheninchangjiang

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo