SELECTDefectType = CASE WHEN ((abs(vcr.YTD) < @e1)
                            AND (abs(cr.Month1) < @e1)
                            AND (abs(vcr.Month3) < @e1)
                         --AND (abs(vcr.Month6) < @e1)
                            AND (abs(vcr.Year1) < @e1)
                            AND (abs(vcr.Year3) < @e1)
                            AND (abs(vcr.Year5) < @e2)
                            AND (abs(vcr.Year10) < @e2)
                            AND (abs(vcr.SI) < @e2))
                          THEN 'Normal'                         WHEN ((abs(vcr.YTD) < @e1)
                            AND (abs(vcr.Month1) < @e1)
                            AND (abs(vcr.Month3) < @e1)
                         --AND (abs(vcr.Month6) < @e1)
                            AND (abs(vcr.Year1) < @e1)
                            AND (abs(vcr.Year3) < @e1)
                            AND (abs(vcr.Year5) < @e2)
                            AND (abs(vcr.Year10) < @e2)
                            AND (abs(vcr.SI) >= @e2))
                          THEN 'Warning (SI Only Discrepancy)'                         WHEN (abs(vcr.YTD) < @e1
                            AND abs(vcr.Month1) < @e1
                            AND abs(vcr.Month3) < @e1
                         --AND abs(vcr.Month6) < @e1
                            AND abs(vcr.Year1) < @e1
                            AND abs(vcr.Year3) < @e1
                            AND abs(vcr.Year5) < @e2
                            AND abs(vcr.Year10) >=@e2
                            AND v.ShareClassTypeId = '3')
                          THEN 'Warning (B Share)'                         WHEN (abs(vcr.YTD) < @e1
                            AND abs(vcr.Month1) < @e1
                            AND abs(vcr.Month3) < @e1
                         --AND abs(vcr.Month6) >= @e1
                            AND abs(vcr.Year1) < @e1
                            AND 
                                (abs(vcr.Year3) >= @e1
                            OR abs(vcr.Year5) >= @e2
                            OR abs(vcr.Year10) >= @e2)
                            AND v.DeclaresDailyDividend = '1')
                          THEN 'Warning (Daily Dividend)'                         ELSE 'Defect-candidates' END
FROM (SELECT * FROM dbo.ReturnData WHERE FamilyName = @FamilyName AND Year=@Year AND Month = @Month AND Source = @Source) AS rd
LEFT JOIN(
(SELECT * FROM ViewCompareResult WHERE FamilyName = @FamilyName AND Year=@Year AND Month = @Month AND  Source = @Source) AS vcr
LEFT JOIN 
AuditRecord ar
ON ar.FamilyName = vcr.FamilyName AND ar.Year = vcr.Year AND ar.Month = vcr.Month AND ar.Id = vcr.Id
INNER JOIN
(SELECT FundClassId, FundClassName,FamilyName,Ticker,Cusip,ISIN,Domicile,Region,SecurityType,Status,PerfReady,InceptionDate,ShareClassTypeId,DataReadiness,DeclaresDailyDividend
 FROM RawData..ViewSecurityTypeBaseTable) v
ON v.FundClassId = vcr.Id
INNER JOIN
(SELECT * FROM dbo.ViewMonthlyReturn WHERE  Year=@Year AND Month = dbo.getNumberMonth(@Month)) AS xd
ON vcr.Id = xd.Id AND vcr.Year = xd.Year AND dbo.getNumberMonth(vcr.Month) = xd.Month
)ON vcr.Id = rd.Id AND vcr.FamilyName = rd.FamilyName AND vcr.Source = rd.SourceLEFT JOIN
dbo.AnalystFamilyLinking a
ON a.Family = rd.FamilyName and a.Source = rd.Source这个select的结果都进了case when 的else 里面,虽然有明显符合条件的其他选项,如“Normal”,是因为判断绝对值的原因吗?或者是数据类型转化的问题?