无效的长度参数:分组左函数

在以下CASE语句代码中,我收到“传递给LEFT或SUBSTRING函数的无效长度参数”错误。奇怪的是,它在Select语句中可以正常工作,但是一旦复制并粘贴到Group By中后,就会给出错误。

我先对凌乱的代码表示歉意,这项工作正在进行中!

select 
case when mm.[MEA Set] in ('Medicaid - Metrics') 
and UPPER(right(left(RIGHT(mm.[Reference ID] + '-',len(mm.[Reference ID]) - CHARINDEX('-',mm.[Reference ID],0)),charindex('-',RIGHT(mm.[Reference ID] + '-',0))) - 1),1)) like '%a%' 
or  UPPER(right(left(RIGHT(mm.[Reference ID] + '-',1)) like '%b%' 
then left(mm.[Reference ID],CHARINDEX('-',0) + charindex('-',0))) - 1)
when mm.[MEA Set] in ('Medicaid - Metrics') 
and UPPER(right(left(RIGHT(mm.[Reference ID] + '-',1)) not like '%a%' 
or  UPPER(right(left(RIGHT(mm.[Reference ID] + '-',1)) not like '%b%' 
then left(mm.[Reference ID],0))) - 0) 
when mm.[Reference ID] in ('CLM-12-FLC-LTC','CLM-12-FLC-MMA','CLM-13-FLC-LTC','CLM-13-FLC-MMA','CLM-16-FLC-LTC','CLM-16-FLC-MMA','CLM-17-FLC-LTC','CLM-17-FLC-MMA')
then left(mm.[Reference ID],0))) +4)
else mm.[Reference ID] 
end as GroupedRefID,NumeratorTotal = sum(cast(m.[Numerator Value] as float)),DenominatorTotal = sum(cast(m.[Denominator Value] as float)),m.StartofReportingPeriod,m.EndofReportingPeriod

from MEACyclesnapShot m
left join MEACONFIGsnapshot mm
on m.Configuration = mm.[Configuration Number]

where convert(date,m.CreatedOn) = 
(select max(convert(date,CreatedOn)) from MEACyclesnapShot)
and convert(date,mm.CreatedOn) = 
(select max(convert(date,CreatedOn)) from MEACONFIGsnapshot) 
and convert(date,m.EndofReportingPeriod) > '02/01/2016'
and mm.[MEA Set] in ('Medicaid - Metrics','Medicare - Metrics')
and mm.[Configuration Status] in ('active','Gap','Retired')

group by m.StartofReportingPeriod,m.EndofReportingPeriod,case when mm.[MEA Set] in ('Medicaid - Metrics') 
and UPPER(right(left(RIGHT(mm.[Reference ID] + '-',0))) +4)
else mm.[Reference ID] 
end
a6666665 回答:无效的长度参数:分组左函数

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3157149.html

大家都在问