【发布时间】:2021-10-24 17:14:22
【问题描述】:
我在 Teradata 中有两个需要 LEFT JOIN 的表。 第一个包括客户,第二个包括他们的详细信息以及有效期结束日期。 NULL 代表当前有效。
表1
| client_id |
|---|
| 1 |
| 2 |
表2
| client_id | valid_end |
|---|---|
| 1 | 31.12.2021 |
| 1 | 31.12.2022 |
| 2 | 31.12.2020 |
| 2 | null |
我需要使用 Table2 中每个客户端的最新记录左连接这两个表。 如果当前有效的记录为 NULL,则使用它。如果没有任何 NULL 记录,则使用最高日期。
结果
| client_id | valid_end |
|---|---|
| 1 | 31.12.2022 |
| 2 | null |
使用 QUALIFY 和 MAX 进行了很多尝试,但从未达到要求的结果。感谢您的建议。
【问题讨论】:
-
向我们展示您当前的查询尝试。 (可能不太难修改。)
-
我不会考虑使用空值来表示除缺失数据之外的任何内容,这是一种最佳做法。对于您的“当前”行,您可以使用遥远未来的某个日期,例如 9999-12-31。