select t.m,t.ym,
t.销量,
t1.销量 同期,
(case when t1.销量 is null then ''
else (t.销量-t1.销量)/t1.销量 end) 同比,
t2.销量 上期,
(case when t2.销量 is null then ''
else (t.销量-t2.销量)/t2.销量 end) 环比
from
(
select strftime('%m',b.订购日期)+0 m,
strftime('%Y-%m',b.订购日期) ym,
sum(a.数量) 销量
from 订单明细 a
left join 订单 b on a.订单ID=b.订单ID
where strftime('%Y',b.订购日期) = '${y}'
group by strftime('%Y-%m',b.订购日期)
) t
left join
(
select strftime('%m',b.订购日期)+0 m,
strftime('%Y-%m',b.订购日期) ym,
sum(a.数量) 销量
from 订单明细 a
left join 订单 b on a.订单ID=b.订单ID
where strftime('%Y',b.订购日期) = '${y-1}'
group by strftime('%Y-%m',b.订购日期)
) t1 on t.m=t1.m
left join
(
select (case when strftime('%m',b.订购日期)+0 <=11
then strftime('%m',b.订购日期)+1 end) m,
strftime('%Y-%m',b.订购日期) ym,
sum(a.数量) 销量
from 订单明细 a
left join 订单 b on a.订单ID=b.订单ID
where strftime('%Y',b.订购日期) = '${y}'
group by strftime('%Y-%m',b.订购日期)
union
select (case when strftime('%m',b.订购日期)+0 =12
then 1 end) m,
strftime('%Y-%m',b.订购日期) ym,
sum(a.数量) 销量
from 订单明细 a
left join 订单 b on a.订单ID=b.订单ID
where strftime('%Y',b.订购日期) = '${y-1}'
group by strftime('%Y-%m',b.订购日期)
) t2 on t.m=t2.m