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+其他”的笔数