select * from (你原来的sql语句)
where 1=1
if{len(ym_sta)>0&&len(ym_end)>0," and substr(BUDAT,1,7) between "+ym_sta+" and "+ym_end,""}
=======
看你的sql,应该是下面的格式
SELECT * FROM DWD_BM_PLAN_OUT DBRM WHERE EXISTS ( SELECT 1 FROM ( SELECT DISTINCT AUFNR FROM DWD_BM_PLAN_OUT
where 1=1
if{len(ym_sta)>0&&len(ym_end)>0," and substr(BUDAT,1,7) between "+ym_sta+" and "+ym_end,""}