【发布时间】:2021-10-06 23:02:07
【问题描述】:
我发现很难编写查询以获得所需的输出。 我需要获取两个连续行之间的日期差异,如果日期差异
我必须根据以下给出的标准用“是”或“否”值填充新列
标准 1:
对于第一行,新列值应始终为“否”
从第二行开始,如果两个日期差
第一行和第二行的日期差
第二行和第三行的日期差异
第三行和第四行的日期差异超过 6 个月,但有效为“是”,因此新列值为“否”。
输出应该如下所示
| Custid | enter_date | Rscode | Valid | New_column |
|---|---|---|---|---|
| 123 | 2020-04-11 | BCB | Yes | No |
| 123 | 2020-06-13 | ABC | Yes | Yes |
| 123 | 2020-09-01 | FBS | No | No |
| 123 | 2021-05-01 | ABC | Yes | NO |
| 123 | 2021-07-05 | ABC | Yes | Yes |
标准 2:
如果原因代码以“RQT”开头并且任何有效代码后跟 RQT(即使日期差为 6 个月且原因代码有效),则新列应为下一个连续行的“否”,输出与是。
| Custid | enter_date | Rscode | Valid | New_column |
|---|---|---|---|---|
| 345 | 2020-02-19 | RQT | Yes | NO |
| 345 | 2020-03-22 | BCB | Yes | NO |
| 345 | 2020-06-18 | RQT | Yes | Yes |
| 345 | 2020-10-29 | BCB | Yes | Yes |
| 345 | 2021-03-24 | ABC | Yes | Yes |
| Custid | enter_date | Rscode | Valid | New_column |
|---|---|---|---|---|
| 346 | 2020-02-19 | RQT | Yes | NO |
| 346 | 2020-03-22 | RQT | Yes | NO |
| 346 | 2020-06-18 | RQT | Yes | Yes |
| 346 | 2020-10-29 | BCB | Yes | Yes |
| 346 | 2021-03-24 | RQT | Yes | Yes |
【问题讨论】:
-
当问题是关于 teradata 时,您为什么要使用 Oracle 进行标记?
标签: oracle oracle11g teradata teradata-sql-assistant teradatasql