Sql 0个结果影响整个查询
我想知道是否有一种方法可以使子查询结果的连接结果成为预定义的条目 下面的查询为uniqueID JobNo提取MAXReceiveDate。但是,如果没有收到任何结果,则不会显示整个结果。还有其他几个连接可能包含数据Sql 0个结果影响整个查询,sql,sql-server,Sql,Sql Server,我想知道是否有一种方法可以使子查询结果的连接结果成为预定义的条目 下面的查询为uniqueID JobNo提取MAXReceiveDate。但是,如果没有收到任何结果,则不会显示整个结果。还有其他几个连接可能包含数据 --***SUB QUERY (Receiver) JOIN ( SELECT MAX(cast(r.ReceiveDate as DATE)) as ReceiveDate,
--***SUB QUERY (Receiver)
JOIN
(
SELECT
MAX(cast(r.ReceiveDate as DATE)) as ReceiveDate,
por.JobNo
FROM
POReleases as por
INNER JOIN
Receiver as r on por.PONum = r.PONum
GROUP BY por.JobNo
) r
ON r.JobNo = o.JobNo
查询最终将从采购订单中提取数据,结果是最近的日期,接收者根据工单号显示最近的日期
如果未收到任何内容,则结果为“Whatever”或NULL。什么都行
整个查询如下:
您的子查询需要是一个左连接,而不是一个常规连接,这将允许它包含结果(如果存在),否则为NULL
--***SUB QUERY (Receiver)
LEFT JOIN
(
SELECT
MAX(cast(r.ReceiveDate as DATE)) as ReceiveDate,
por.JobNo
FROM
POReleases as por
INNER JOIN
Receiver as r on por.PONum = r.PONum
GROUP BY por.JobNo
) r
ON r.JobNo = o.JobNo
谢谢,我现在可以把它读为空。我假设我可以左键联接每个子查询,使每个子查询的结果相同?是的,任何子查询/表如果可能不存在匹配数据,则左键联接可以防止其他记录因子查询/表中缺少匹配项而受到影响,这解决了我遇到的每一个问题。我真的很感激!
--***SUB QUERY (Receiver)
LEFT JOIN
(
SELECT
MAX(cast(r.ReceiveDate as DATE)) as ReceiveDate,
por.JobNo
FROM
POReleases as por
INNER JOIN
Receiver as r on por.PONum = r.PONum
GROUP BY por.JobNo
) r
ON r.JobNo = o.JobNo