sql - 在日期时间创建的记录上连接两个记录表 - SQL
问题描述
我正在尝试加入(完全外部联接)两个包含客户状态信息的记录或历史表。每条记录都有一个创建记录时的日期时间字段,以及新旧状态。
表 A
ID | 一个 CreatedOn | 旧状态 | 状态 新 |
---|---|---|---|
10001 | 2021 年 2 月 5 日 12:00:00 | 空值 | 饥饿的 |
10001 | 2021 年 3 月 5 日 12:00:00 | 饥饿的 | 伤心 |
表 B
ID | B CreatedOn | B 状态 旧 | B 状态 新 |
---|---|---|---|
10001 | 2021 年 2 月 5 日 12:00:00 | 空值 | 积极的 |
10001 | 2021 年 4 月 5 日 12:00:00 | 积极的 | 不活跃 |
我想要的结果是一个记录表,其中包含每个日期时间的所有状态更改。
一个 CreatedOn | 旧状态 | 状态 新 | B CreatedOn | B 状态 旧 | B 状态 新 |
---|---|---|---|---|---|
2021 年 2 月 5 日 12:00:00 | 空值 | 饥饿的 | 2021 年 2 月 5 日 12:00:00 | 空值 | 积极的 |
2021 年 3 月 5 日 12:00:00 | 饥饿的 | 伤心 | 空值 | 空值 | 空值 |
空值 | 空值 | 空值 | 2021 年 4 月 5 日 12:00:00 | 积极的 | 不活跃 |
然而,我的查询结果返回一个没有表 B 中最后一条记录的表
一个 CreatedOn | 旧状态 | 状态 新 | B CreatedOn | B 状态 旧 | B 状态 新 |
---|---|---|---|---|---|
2021 年 2 月 5 日 12:00:00 | 空值 | 饥饿的 | 2021 年 2 月 5 日 12:00:00 | 空值 | 积极的 |
2021 年 3 月 5 日 12:00:00 | 饥饿的 | 伤心 | 空值 | 空值 | 空值 |
我所拥有的并不复杂......但我不知道为什么它不起作用。
SELECT *
FROM A
FULL OUTER JOIN B
ON A.A_CreatedOn = B.B_CreatedOn
我的完整查询与此类似
SELECT
[A_CreatedOn]
,[Status A OLD]
,[Status A NEW]
,[B_CreatedOn]
,[Status B OLD]
,[Status B NEW]
FROM A
FULL OUTER JOIN B
ON A.A_CreatedOn = B.B_CreatedOn
JOIN C
ON A.ID = C.ID
WHERE C = '10001'
解决方案
JOIN C
ON A.ID = C.ID
WHERE C = '10001'
问题应该出在这种情况下。检查这个地方的加入条件。
推荐阅读
- python-3.x - 使用 ttk 小部件时,tkinter 函数会重复两次
- docker - Google Cloud Build - 结果不会跨步骤保存
- java - Spring4 Jersey2 集成:添加 jersey-spring4 失败
- security - 同一服务器上的应用程序之间的数据交换
- r - ggplot2 / facet_wrap - 变量的共享标签
- windows - 在Windows批处理中比较带有双引号的字符“
- android - layout_weight 在 ScrollView 中不起作用
- uwp - UWP Mvvm Prism 配置容器问题
- ios - 在自定义键盘上获取键盘高度为 0
- ios - 旋转设备时如何保持每个视图的位置?