set nocount on
declare @sdate datetime,@edate datetime --本期开始结束日期
declare @sdate1 datetime,@edate1 datetime --去年同月开始结束日期
set @sdate='${年月}'+'-01' --传入年月以2022-06格式
set @edate=dateadd(ms,-3,DATEADD(MONTH,1,@sdate))
set @sdate1=dateadd(year,-1,@sdate)
set @edate1=dateadd(year,-1,@edate)
--本期数据
select 店铺,sum(销售额) as 销售额
into #本期
from 销售数据
where 销售日期 between @sdate and @edate
group by 店铺
--去年同期数据
select 店铺,sum(销售额) as 销售额
into #同期
from 销售数据
where 销售日期 between @sdate1 and @edate1
group by 店铺
--输出结果
select a.店铺,a.销售额,ISNULL(b.销售额,0) 同期销售额
from #本期 a
left join #同期 b on a.店铺=b.店铺
set nocount off
这是MSSQL的代码,同比在报表里面用单元格公式去算。其他数据库大同小异,都可以把本期和同期分别写入2个临时表再关联