求一条sql语句

sougrape 2010-06-02 09:53:38
SQL2000的数据库,表Table如下:

分类 数量

A类 5
A类 5
B类 10
C类 6
C类 8
D类 2
E类 7
.....

现在要统计 A类,B类,C类各有多少,还要统计A类+B类+C类的数量合计,应该得到如下数据:

A类 B类 C类 合计

2 1 2 34

想在一条SQL语句中统计出来,可以实现么?或者哪里有类似资料,求个链接,实在不知道用什么关键字能检索.
...全文
45 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sougrape 2010-06-02
  • 打赏
  • 举报
回复
非常谢谢前面2位,已经实现了,也感谢wufeng的热情帮助.
水族杰纶 2010-06-02
  • 打赏
  • 举报
回复
if not object_id('tb') is null
drop table tb
Go
Create table tb([分类] nvarchar(2),[数量] int)
Insert tb
select N'A类',5 union all
select N'A类',5 union all
select N'B类',10 union all
select N'C类',6 union all
select N'C类',8 union all
select N'D类',2 union all
select N'E类',7
Go
select sum(case when 分类=N'A类' then 1 else 0 end )A类,
sum(case when 分类=N'B类' then 1 else 0 end )B类,
sum(case when 分类=N'C类' then 1 else 0 end )C类,
sum(case when 分类 in(N'A类',N'B类',N'C类') then 数量 else 0 end )合计
from tb
/*
A类 B类 C类 合计
----------- ----------- ----------- -----------
2 1 2 34

(1 個資料列受到影響)
*/
永生天地 2010-06-02
  • 打赏
  • 举报
回复
select sum(case when 分类='A类' then 1 else 0 end ) [A类],
sum(case when 分类='B类' then 1 else 0 end ) [B类],
sum(case when 分类='B类' then 1 else 0 end ) [B类],
sum(case when 分类 in ('A类','B类','C类') then 数量 else 0 end ) [合计]
from tb
水族杰纶 2010-06-02
  • 打赏
  • 举报
回复
select sum(case when 分类='A类' then 1 else 0 end )A类,
sum(case when 分类='B类' then 1 else 0 end )B类,
sum(case when 分类='C类' then 1 else 0 end )C类,
sum(case when 分類 in('A类','B类','C类') then 数量 else 0 end )
from tb

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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