Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 0个结果影响整个查询_Sql_Sql Server - Fatal编程技术网

Sql 0个结果影响整个查询

Sql 0个结果影响整个查询,sql,sql-server,Sql,Sql Server,我想知道是否有一种方法可以使子查询结果的连接结果成为预定义的条目 下面的查询为uniqueID JobNo提取MAXReceiveDate。但是,如果没有收到任何结果,则不会显示整个结果。还有其他几个连接可能包含数据 --***SUB QUERY (Receiver) JOIN ( SELECT MAX(cast(r.ReceiveDate as DATE)) as ReceiveDate,

我想知道是否有一种方法可以使子查询结果的连接结果成为预定义的条目

下面的查询为uniqueID JobNo提取MAXReceiveDate。但是,如果没有收到任何结果,则不会显示整个结果。还有其他几个连接可能包含数据

--***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