首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这条话语写不出来,请高手帮忙

2013-09-28 
这条语句写不出来,请高手帮忙!cNamestatus 博爱店离线 博爱店离线 博爱店离线 博爱店离线 石峰店在线 石峰

这条语句写不出来,请高手帮忙!
cName   status
 博爱店离线
 博爱店离线
 博爱店离线
 博爱店离线
 石峰店在线
 石峰店离线
 石峰店在线
 奥体店离线
 奥体店离线
八里街店离线
八里街店在线
八里街店在线
八里街店在线
八里街店离线
宝安店离线
宝安店在线
宝安店在线

我想用实现SQL查询在线的门店记录数及离线的门店用0代替并按上到下排序.
即是:
博爱店   0
石峰店   2
奥体店   0
八里街店 3
宝安店   2
应该如何实现,十分感激.
[解决办法]

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-09-24 13:15:19
-- Version:
--      Microsoft SQL Server 2014 (CTP1) - 11.0.9120.5 (X64) 
--Jun 10 2013 20:09:10 
--Copyright (c) Microsoft Corporation
--Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([cName] varchar(8),[status] varchar(4))
insert [huang]
select '博爱店','离线' union all
select '博爱店','离线' union all
select '博爱店','离线' union all
select '博爱店','离线' union all
select '石峰店','在线' union all
select '石峰店','离线' union all
select '石峰店','在线' union all
select '奥体店','离线' union all
select '奥体店','离线' union all
select '八里街店','离线' union all
select '八里街店','在线' union all
select '八里街店','在线' union all
select '八里街店','在线' union all
select '八里街店','离线' union all
select '宝安店','离线' union ALL
select '宝安店','在线' union all
select '宝安店','在线'
--------------开始查询--------------------------

select cname,COUNT(CASE WHEN [status] ='离线' THEN 0 ELSE 1 END )
from [huang]
GROUP BY cname

----------------结果----------------------------
/* 
cname    
-------- -----------
奥体店      2
八里街店     5
宝安店      3
博爱店      4
石峰店      3

*/

[解决办法]
select cname,sum(CASE WHEN [status] ='离线' THEN 0 ELSE 1 END ) from [huang] GROUP BY cname
 

热点排行