select case
when rr.ENDDATE - rr.STARTDATE + 1 = 0 then
0 + nvl(tt.gagag, 0)
else
((LEAST(rr.ENDDATE, trunc(sysdate,'MM')-1) -
GREATEST(rr.STARTDATE, DATE '${STARTDATE}') + 1)
the 1
end as 金额
from sfddf rr
出问题的地方在DATE '${STARTDATE}'