首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于创建两个点之间不存在的记录的查询

用于创建两个点之间不存在的记录的查询
EN

Stack Overflow用户
提问于 2017-08-17 15:50:23
回答 1查看 38关注 0票数 2

我目前已经编写了一个查询,它返回以下内容

代码语言:javascript
复制
+-----------+--------+--------+
| client_id | Period | Status |
+-----------+--------+--------+
|      2378 |      1 | Paid   |
|      2378 |      2 | Paid   |
|      2378 |      4 | Paid   |
|      2378 |      5 | Paid   |
|      2378 |      6 | Frozen |
|      2378 |     10 | Paid   |
+-----------+--------+--------+

但是,我希望它包含我没有任何数据的时间段。例如,周期3和周期7-9。通过填写上一期发生的内容。例如,期间3将成为支付。如下所示:

代码语言:javascript
复制
+-----------+--------+--------+
| client_id | Period | Status |
+-----------+--------+--------+
|      2378 |      1 | Paid   |
|      2378 |      2 | Paid   |
|      2378 |      3 | Paid   |
|      2378 |      4 | Paid   |
|      2378 |      5 | Paid   |
|      2378 |      6 | Frozen |
|      2378 |      7 | Frozen |
|      2378 |      8 | Frozen |
|      2378 |      9 | Frozen |
|      2378 |     10 | Paid   |
+-----------+--------+--------+

请注意,我确实有多个客户端ID,我的目的只是填充数据中为该Client_Id提供的最小和最大时间段之间的任何空白。此外,每个客户端的周期也因客户端而异。例如,客户端1的最大周期可以是6,客户端2的最大周期可以是8。

有没有人知道可以做到这一点的方法?

我遇到了以下问题,除了我的情况之外,它有点类似。我觉得我需要在不同的client_id的?Example I found上编写一个循环。

EN

回答 1

Stack Overflow用户

发布于 2017-08-17 16:03:08

典型的解决方案是定义一个包含所有句点的源(表),并将查询连接到表中。

代码语言:javascript
复制
select
   ap.Period,
   case when q.Status is not null then q.Status else @prevStatus end as status,
   @prevStatus:=q.Status
from all_periods ap 
     left join (your query here) q on ap.Period = q.Period,
     (select @prevStatus:='undefined') sess
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45729408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档