我有两张桌子,t1 和 t2。t1 保存合约编号,而 t2 保存这些合约的合约事件。
我正在尝试从 t1 中选择所有合同以及从 t2 中选择与 t1 匹配的所有记录,但也尝试从 t1 中返回与 t2 不匹配的所有记录。我的查询似乎只是带回了与两个表匹配的所有记录。
我努力了:
- 左连接
- 内连接和
- 左外连接
但我仍然得到相同的结果。
t1 包含 293 个结果,t2 包含 270 个事件。一些 t2 事件对 1 个合约 ID 有多个事件,而一些帐户没有针对它们注册的事件。
我想带回所有contractID
s 和与之相关的所有事件contractID
,但我也想返回没有事件的合同,在contractID
列中有 null 。
我目前的查询:
SELECT p.contractfk
,[GetEnddate](p.ContractFK) [Contract End Date] -- function
,CASE
WHEN c.StartDate IS NULL THEN 1
WHEN c.StartDate > ce.CreatedDate THEN 1
ELSE 0
END [PreEngineer]
,CASE
WHEN c.StartDate < ce.CreatedDate THEN 1 ELSE 0
END [PostEngineer]
FROM [CRM].[pbx].[PBX] p
LEFT JOIN [ContractEnquiry] ce
ON ce.ContractFK = p.ContractFK
LEFT JOIN [Contract] c
ON [c].[contractID] = [P].[contractfk]