select bill_no,
sum(case when part_dt >= concat(substr('${START_DATE}',1,7),'-01') and part_dt<='${START_DATE}' then nvl(amt,0) else 0 end)/((DATEDIFF('${START_DATE}',CONCAT(SUBSTR('${START_DATE}',1,7),'-01'))+1)) month_da,
sum(case when part_dt >= concat(substr('${START_DATE}',1,4),'-',substr(concat('00',floor(substr('${START_DATE}',6,2)/3.1)*3+1),-2),'-01') and part_dt<='${START_DATE}' then nvl(amt,0) else 0 end)/((DATEDIFF('${START_DATE}',CONCAT(SUBSTR('${START_DATE}',1,4),'-',SUBSTR(CONCAT('00',FLOOR(SUBSTR('${START_DATE}',6,2)/3.1)*3+1),-2),'-01'))+1)) quarter_da,
sum(case when part_dt >= concat(substr('${START_DATE}',1,4),'-01-01') and part_dt<='${START_DATE}' then nvl(amt,0) else 0 end)/((DATEDIFF('${START_DATE}',CONCAT(SUBSTR('${START_DATE}',1,4),'-01-01'))+1)) year_da
from xxxx_table_xxxx dlt
group by bill_no