求一SQL语句,两次购买时间

会员表会员名,注册时间订单表订单ID,会员名,下单时间订单明细表订单ID,产品ID,状态(某订单有若干产品,状态表示该产品是否成功购买,可能有缺货或成功等状态)统计某一时... 会员表
会员名,注册时间

订单表
订单ID,会员名,下单时间

订单明细表
订单ID,产品ID,状态
(某订单有若干产品,状态表示该产品是否成功购买,可能有缺货或成功等状态)

统计 某一时间段注册的用户,第一,二次成功购买(成功购买指订单明细表中状态为5的订单)的时间间隔.
展开
 我来答
roy_88
2009-03-13 · TA获得超过3696个赞
知道大有可为答主
回答量:2914
采纳率:100%
帮助的人:2726万
展开全部
select
会员名,datediff(d,b.下单时间,d.下单时间) as 天数
from 会员表 a
inner join 订单表 b on a.会员名=b.会员名
inner join 订单表 d on d.会员名=a.会员名
where
b.订单ID=(select top 1 订单ID from 订单表 where 会员名=b.会员名 order by 下单时间 asc)
and
d.订单ID=(select top 1 订单ID from 订单表 where 会员名=d.会员名 and 订单ID<>b.订单ID order by 下单时间 asc)
and
exists(select 1 from 订单明细表 where 订单ID=b.订单ID and 状态=5)
and
exists(select 1 from 订单明细表 where 订单ID=d.订单ID and 状态=5)
百度网友ecc263c
2009-03-13 · TA获得超过624个赞
知道小有建树答主
回答量:478
采纳率:100%
帮助的人:377万
展开全部
select t.会员名,min(datediff(day,t.下单时间,tt.下单时间)) 天数
from (select t1.会员名,min(t2.下单时间) 下单时间
from 会员表 t1 join 订单表 t2 on t1.会员名=t2.会员名
join 订单明细表 t3 on t2.订单ID=t3.订单ID
where t1.注册时间 between 'lz要的一段注册时间的起始时间' and 'lz要的一段注册时间的截止时间'
and t3.状态=5
group by t1.会员名)t join 订单表 tt on t.会员名=tt.会员名
join 订单明细表 ttt on tt.订单ID=ttt.订单ID
where ttt.状态=5 and t.下单时间<>tt.下单时间
group by t.会员名
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dyxg041
2009-03-13 · TA获得超过1035个赞
知道小有建树答主
回答量:1067
采纳率:0%
帮助的人:965万
展开全部
学习,有答案告诉我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式