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