问题描述
- 指点一下哪错了,求助
-
select [列 1],convert(decimal(18,2),sum(cast([列 7] as float))) as 总,
case [列 2]when substring( [列 2],1,5) in('00852','00853','00886') then '1' else '0' end
when substring( [列 2],1,3) in('001','002','003','004','005','006','007','008','009') then '2' else'0' end
else '3' end
from dbo.ceshi20150625 group by [列 1]要实现的是 如果前5位包含00852 00853 00886 就统计他们的金额
如果前五位不包含 在判断前三位 包不包含001-009 的
最后在统计不符合上面条件的金额
解决方案
case [列 2]
when substring( [列 2],1,5) in('00852','00853','00886') then '1' else '0' end
when substring( [列 2],1,3) in('001','002','003','004','005','006','007','008','009') then '2' else'0' end
else '3' end
这语法不对,也不知道你要表达什么意思,哪种都沾不上边
case [列 2]
when substring( [列 2],1,5) in('00852','00853','00886') then '1' else '0' end
或者
case
when substring( [列 2],1,5) in('00852','00853','00886') then '1'
when substring( [列 2],1,3) in('001','002','003','004','005','006','007','008','009') then '2'
else '3' end
时间: 2024-09-07 12:51:55