作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 多重条件计算笔数
时间Tue Aug 30 15:24:56 2016
select StoreID,RefID,
case when max(case when ResponseID = 'A' then 1 else 0 end) = 1 then 1
else count(*)
end
from table
group by StoreID,RefID
※ 引述《seabok (思念,留在1999)》之铭言:
: 资料库名称:MSSQL
: 资料库版本:2008
: 内容/问题描述:
: 请教各位先进:
: 目前有一客服Table如下
: StoreID RefID ResponseID
: 001 2 A
: 002 3 A
: 002 3 B
: 002 4 E
: 003 1 C
: 004 6 D
: 005
: 006
: StoreID:分店代码
: RefID:客诉件ID,每间分店的RefID独立滚号,相同RefID则代表为同一笔客诉件
: ResponseID:客诉分类代码
: 现在想统计每间分店客诉原因的笔数,栏位为:
: 分店ID
: 客诉原因只有A (如上表的001,记数为1)
: 客诉原因有A+其他 (如上表的StoreID=002,RefID=3,计数为1)
: 客诉原因没有A (如上表的StoreID=002+RefID=4、StoreID=003、StoreID=004,记数为3)
: 请教各位高手SQL该如何写才能统计出我所要的结果?
: 有试过Sum(Case when ResponseID = 'A' then 1 else 0 end)这方法,但发现计数出来
: 的结果会包含「A+其他」的笔数 --> 错误
: 万分感谢~
※ 编辑: cutekid (61.221.80.36), 08/31/2016 13:10:09