统计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

上面是查询 ,怎么做成一个存储过程 调用的时候改下日期就可以了 上面有三种日期,最下面的开始日期是不变的 ,上面的日期都是对应的 一天。 还这是统计二次下单的 ,能不能把三次四次五次 等等的数据汇总成一个表。。
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
我就看见了个下单时间。 你这么描述问题也太抽象了吧。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧