求一SQL语句,两次购买时间
会员表会员名,注册时间订单表订单ID,会员名,下单时间订单明细表订单ID,产品ID,状态(某订单有若干产品,状态表示该产品是否成功购买,可能有缺货或成功等状态)统计某一时...
会员表
会员名,注册时间
订单表
订单ID,会员名,下单时间
订单明细表
订单ID,产品ID,状态
(某订单有若干产品,状态表示该产品是否成功购买,可能有缺货或成功等状态)
统计 某一时间段注册的用户,第一,二次成功购买(成功购买指订单明细表中状态为5的订单)的时间间隔. 展开
会员名,注册时间
订单表
订单ID,会员名,下单时间
订单明细表
订单ID,产品ID,状态
(某订单有若干产品,状态表示该产品是否成功购买,可能有缺货或成功等状态)
统计 某一时间段注册的用户,第一,二次成功购买(成功购买指订单明细表中状态为5的订单)的时间间隔. 展开
3个回答
展开全部
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)
会员名,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)
展开全部
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.会员名
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.会员名
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习,有答案告诉我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询