统计销售金额,按本日,本月,本季度跟本年来
统计销售金额,按本日,本月,本季度和本年来
------解决方案--------------------
嗯 ,貌似少写了一点
重新写一个吧
先创建一个过程
调用的时候
结果
出货日期 料号 出货金额
2014-1-1 a 300
2014-1-2 a 300
2014-1-1 a 300
2014-1-2 a 300
2014-1-2 a 300
2014-1-1 a 300
2014-1-1 b 300
2014-1-1 c 300
2014-1-1 a 300
2013-1-1 a 300
2013-12-1 a 300
2013-12-1 a 300
2013-12-1 b 300
2013-12-1 c 300
2014-1-1 a 300
写出查询语句,假设本日是2014-1-2,本月是1月分别按本日统计
本日销售金额 昨天销售金额 去年同期销售金额
本月销售金额 上月销售金额 去年同期销售金额
本季度销售金额 上季度销售金额 去年同期销售金额
------解决方案--------------------
嗯 ,貌似少写了一点
重新写一个吧
先创建一个过程
create proc tj
@da varchar(10)
as
declare @s varchar(3000)
set @s='
select sum(case when 出货日期='''+ @da +''' then 出货金额 else 0 end) as 当日销量, sum(case when 出货日期=dateadd(dd,-1,'''+ @da +''') then 出货金额 else 0 end) as 昨日销量, sum(case when 出货日期=dateadd(yy,-1,'''+ @da +''') then 出货金额 else 0 end) as 去年同期销售金额,
sum (case when datediff(mm,出货日期,'''+ @da +''')=0 then 出货金额 else 0 end) 本月销量,sum (case when datediff(mm,出货日期,'''+ @da +''')=1 then 出货金额 else 0 end) 上月销量, sum (case when datediff(mm,出货日期,'''+ @da +''')=12 then 出货金额 else 0 end) 去年同期,
sum (case when datediff(qq,出货日期,'''+ @da +''')=0 then 出货金额 else 0 end) 本季度销量,sum (case when datediff(qq,出货日期,'''+ @da +''')=1 then 出货金额 else 0 end) 上季度销量, sum (case when datediff(qq,出货日期,'''+ @da +''')=4 then 出货金额 else 0 end) 去年同期
from taba'
exec(@S)
调用的时候
exec tj '2014-1-2'
结果
当日销量 昨日销量 去年同期销售金额 本月销量 上月销量 去年同期 本季度销量 上季度销量 去年同期
5100 2100 0 3000 1200 300 3300 1200 600