with sum_table as( SELECTCAST(substr(s.订购日期,1,4) ASINTEGER) years ,CAST(substr(s.订购日期,6,2) ASINTEGER) months ,substr(s.订购日期,1,7) "年月" ,sum(t.数量) "当月销售" FROM 订单 s ,订单明细 t WHERE1=1 AND s.订单ID = t.订单ID AND substr(s.订购日期,1,4) BETWEEN'${years - 1}'AND'${years}' GROUPBY substr(s.订购日期,1,4),substr(s.订购日期,6,2) ) SELECT b.年月,b.当月销售,b.同比增长率,b.环比增长率 FROM ( SELECT a.* ,ROUND((a.当月销售 - b.当月销售) / b.当月销售 *100,1)||'%' "同比增长率" ,ROUND((a.当月销售 -LAG(a.当月销售,1) OVER ( ORDERBY a.years,a.months)) /LAG(a.当月销售,1) OVER ( ORDERBY a.years,a.months) *100,1) ||'%' "环比增长率" from sum_table a LEFTJOIN sum_table b ON a.months = b.months AND a.years = b.years +1 WHERE1=1 )b WHERE b.years = ${years}