Sql 我如何获得不符合';你没有空的吗?

Sql 我如何获得不符合';你没有空的吗?,sql,sql-server-2005,datetime,Sql,Sql Server 2005,Datetime,我试图根据作业的分派日期从作业中提取工单,以查找被忽略的作业。我只想要带有该作业最新分派日期的工单,这样我就可以确定它上次分派到的时间。但是,我不想提取任何具有空工单的作业,因为这些作业正在被分派。我尝试了一个ROW_NUMBER语句,然后只拉最上面的一行,但是我需要空值首先出现在列表上,然后是最新的日期,所以这不起作用。作业还具有打开或关闭状态,打开的作业始终为空。这是我到目前为止的脚本: SELECT DISTINCT [O].[Name] AS [Opportunity],

我试图根据作业的分派日期从作业中提取工单,以查找被忽略的作业。我只想要带有该作业最新分派日期的工单,这样我就可以确定它上次分派到的时间。但是,我不想提取任何具有空工单的作业,因为这些作业正在被分派。我尝试了一个ROW_NUMBER语句,然后只拉最上面的一行,但是我需要空值首先出现在列表上,然后是最新的日期,所以这不起作用。作业还具有打开或关闭状态,打开的作业始终为空。这是我到目前为止的脚本:

SELECT DISTINCT

    [O].[Name] AS [Opportunity],
    [O].[Office_Location__c] AS [Office],
    MAX([WO].[saasdisp__Dispatch_Date__c]) AS [MaxDate]

FROM    [Opportunity] AS [O]
    JOIN [saasdisp__Work_Order__c] AS [WO] ON ([O].[Name] = [WO].[OppName__c]
                AND [O].[Id] = [WO].[Opportunity__c])

WHERE   [O].[StageName] = 'In Progress'


GROUP BY    [O].[Name],
            [O].[Office_Location__c]
这就是我得到的:

Opportunity         Office        MaxDate
Azad, Fariba          LA    2012-11-08 00:00:00.000
Cantrell, Timothy L.  LA    2012-11-07 00:00:00.000
Feiner, Jeffrey       LA    2012-11-06 00:00:00.000
Greasby, Kat          LA    2012-11-06 00:00:00.000

这正是我需要的,除了这些机会实际上有空日期的未结工单等待分派。

添加一个
不存在的
检查您的where子句:


在where子句中添加一个
不存在
检查:


打开的状态是否与
StageName='In Progress'
相同?你在这里混用术语,我不太明白这个问题。在示例结果中,没有空的MaxDate结果。这令人困惑。打开的状态是否与
StageName='In Progress'
相同?你在这里混用术语,我不太明白这个问题。在示例结果中,没有空的MaxDate结果。这让人困惑。我为迟到的接受道歉。我让一位同事用我的账户发帖,但忘了跟进。他说你的解决方案正是他所需要的。谢谢我为迟到的接受道歉。我让一位同事用我的账户发帖,但忘了跟进。他说你的解决方案正是他所需要的。谢谢
WHERE   [O].[StageName] = 'In Progress'

AND NOT EXISTS (
    SELECT *
    FROM [saasdisp__Work_Order__c] AS [WO2] 
    WHERE [WO2].[saasdisp__Dispatch_Date__c] IS NULL
          AND [O].[Name] = [WO2].[OppName__c]
          AND [O].[Id] = [WO2].[Opportunity__c]
)


GROUP BY    [O].[Name],
            [O].[Office_Location__c]