这个语句没有错
当月份等于01时,执行这条语句,筛选本年1月和去年12月
如 参数nf=2020,yf=01,那么执行的是
and ((nf='2020' and yf='01') or (nf='2019' and yf='12') )
当月份不等于01时,执行这条语句,筛选本年本月与上月
如 参数nf=2020,yf=02,那么执行的是
and ((nf='2020' and yf='02') or (nf='2020' and yf='01') )
没看明白你的题目,你为什么用sum(nf,-1),这个会报错吧
where 子句中不能用分组函数(比如你sql中的sum),如果要用sum做限制条件得写在having子句中