sql - 在 Redshift SQL 中使用 ID 和日期范围删除事务
问题描述
我想在 redshift 中创建一个查询,该查询将根据其有效日期(表 B)删除交易项目(表 A)
让我们称它为表 A 和表 B
表 A 包含项目的所有交易
表 A
Item_Code Date
1. I0001 2019-12-01
2. I0002 2019-12-02
3. I0001 2020-01-01
4. I0003 2020-01-01
则表 2 包含项目有效日期
表 B
Item_Code Valid_From Valid_To
1. I0001 2019-01-01 2019-12-31
2. I0002 2019-01-01 2019-12-31
3. I0003 2019-01-01 2019-12-31
我的预期输出将是
Item_Code 日期
1. I0001 2019-12-01
2. I0002 2019-12-02
解决方案
我将连接两个表并将有效性作为连接条件插入。这将删除所有无效项目,或者您可以反转有效条件以检测哪些项目无效
SELECT A.ITEM_CODE,A.DATE
FROM Table a
INNER JOIN TABLE B
ON A.ITEM_CODE=B.ITEM_CODE AND A.DATE=> B.Valid_from AND A.date <= B.Valid_to
推荐阅读
- memory-management - 为什么将文件映射到内存的程序没有重大页面错误?
- rust - 有没有办法让 cargo build 总是在输出目录中包含目标的名称?
- angular - AR.js - GeoAR - 为什么 gps-camera 不是 a-camera 的注册组件?
- javascript - Javascript 数组显示单个属性的值,但不显示完整数组
- c# - 如何在 C# 控制台应用程序中捕获 USB 弹出事件
- kubernetes - 在本地安装 Kubernetes 中的 portgresql 持久性卷时面临问题
- javascript - 幻灯片图像顺序是否有 CSS 功能?
- ios - 如何将数据从子控制器之一传递到根控制器并关闭所有子控制器?
- javascript - 在 Internet Explorer 11 中对 Dialogflow API 的 ApiAiClient 请求失败?
- ios - 设备“iPad Pro(12.9 英寸)(第 2 代)”不在可用模拟器列表中