22,210
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据:#sale
if object_id('tempdb.dbo.#sale') is not null drop table #sale
create table #sale(store varchar(8), date datetime, sales int, money int)
insert into #sale
select '北京', '2010-11-9', 5, 300 union all
select '北京', '2010-11-3', 2, 1200 union all
select '上海', '2010-11-9', 5, 300 union all
select '上海', '2010-11-2', 5, 300
--> 测试数据:#phone
if object_id('tempdb.dbo.#phone') is not null drop table #phone
create table #phone(id int, phone bigint)
insert into #phone
select 1, 13615421563 union all
select 2, 13215426859 union all
select 3, 15215255555
select phone, convert(varchar(10),getdate(),120),
store+ymd+'日销售数量:'+ltrim(a)+'件,销售金额'+ltrim(b)+'元,本月累计销售,'+ltrim(c)+'件,'+ltrim(d)+'元。'
from #phone a,
(
select store,
ltrim(year(getdate()))+'年'+ltrim(month(getdate()))+'月'+ltrim(day(getdate())) ymd,
sum(case datediff(dd,date,getdate()) when 0 then sales else 0 end)a,
sum(case datediff(dd,date,getdate()) when 0 then money else 0 end)b,
sum(case datediff(mm,date,getdate()) when 0 then sales else 0 end)c,
sum(case datediff(mm,date,getdate()) when 0 then money else 0 end)d
from #sale group by store
) b
/*
phone
-------------------- ---------- --------------------------------------------------------------------------
13615421563 2010-11-09 北京2010年11月9日销售数量:5件,销售金额300元,本月累计销售,7件,1500元。
13215426859 2010-11-09 北京2010年11月9日销售数量:5件,销售金额300元,本月累计销售,7件,1500元。
15215255555 2010-11-09 北京2010年11月9日销售数量:5件,销售金额300元,本月累计销售,7件,1500元。
13615421563 2010-11-09 上海2010年11月9日销售数量:5件,销售金额300元,本月累计销售,10件,600元。
13215426859 2010-11-09 上海2010年11月9日销售数量:5件,销售金额300元,本月累计销售,10件,600元。
15215255555 2010-11-09 上海2010年11月9日销售数量:5件,销售金额300元,本月累计销售,10件,600元。
*/
--信息发送表
create table infosend(phone bigint,date datetime,info varchar(200))
create proc spname
as
begin
insert infosend
select phone, convert(varchar(10),getdate(),120),
store+ymd+'日销售数量:'+ltrim(a)+'件,销售金额'+ltrim(b)+'元,本月累计销售,'+ltrim(c)+'件,'+ltrim(d)+'元。'
from #phone a,
(
select store,
ltrim(year(getdate()))+'年'+ltrim(month(getdate()))+'月'+ltrim(day(getdate())) ymd,
sum(case datediff(dd,date,getdate()) when 0 then sales else 0 end)a,
sum(case datediff(dd,date,getdate()) when 0 then money else 0 end)b,
sum(case datediff(mm,date,getdate()) when 0 then sales else 0 end)c,
sum(case datediff(mm,date,getdate()) when 0 then money else 0 end)d
from #sale group by store
) b
end