统计N次下单率, 能不能做成存储过程啊!!!!

萧寒往往 2015-11-17 08:07:42
select
SUM(总价)as 二次客单总金额,count(*) as 二次客单量 ,(SUM(总价)/count(*)) as 二次客单平均价,

(select count(*) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' ) as 总单量 ,

(select SUM(总价) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' ) as 总金额 ,

(count(*)* 1.000/(select count(*) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' ))
as 二次客单单量占比 ,

(SUM(总价)* 1.000/(select SUM(总价) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' ))
as 二次客单金额占比 ,

(select SUM(优惠券面值) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' )
as 优惠券总金额 ,
(select SUM(总价-优惠券面值) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' and 付款方式='余额支付')
as 余额支付 ,
(select SUM(总价-优惠券面值) from she$ where 下单时间 > '20150731' AND 下单时间 < '20150802' and 付款方式='在线支付')
as 在线支付
from
(select * from she$
where 顾客ID in (select 顾客ID from (select * from she$ where 下单时间 > '20150701' AND
下单时间 < '20150802')as ass
group by 顾客ID having count(1)=2)
and 下单时间 > '20150731' AND 下单时间 < '20150802')
as s1

上面是查询 ,怎么做成一个存储过程 调用的时候改下日期就可以了 上面有三种日期,最下面的开始日期是不变的 ,上面的日期都是对应的 一天。 还这是统计二次下单的 ,能不能把三次四次五次 等等的数据汇总成一个表。。
...全文
56 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Yole 2015-11-18
group by 顾客ID having count(1)=2 把2换成参数,传几就是几次的下单的。
回复
zbdzjx 2015-11-18
应该是指这三个时间吧:20150731、20150802、20150701。20150701应该是不变的吧。 下单次数是指“having count(1)=2”中的2吧。 那大体语句就是 create PROCEDURE proc1 @StartTime string, @EndTime string, @AllCount int begin --放入你的语句,将'20150731'换成@StartTime,将'20150802'换成@EndTime,下单次数的2换成@AllCount。 end 调用方式就是:execute proc1 '20150731','20150802',2
回复
shoppo0505 2015-11-17
我就看见了个下单时间。 你这么描述问题也太抽象了吧。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-11-17 08:07
社区公告
暂无公告