【发布时间】:2012-10-29 05:35:36
【问题描述】:
我正在尝试根据作业的调度日期从作业中提取工作订单以查找被忽视的作业。我只想要具有该作业最近调度日期的工作订单,以便我可以确定自上次调度以来的时间。但是,我不想拉出任何工作订单为空的工作,因为这些工作正在分派过程中。我尝试了 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
这是我需要的,除了这些机会实际上有未处理的工作订单,其日期为空,等待分派。
【问题讨论】:
-
打开状态和
StageName = 'In Progress'一样吗?您在这里混淆了术语,而我并没有完全关注这个问题。在您的示例结果中,没有 NULL MaxDate 结果。这令人困惑。
标签: sql sql-server-2005 datetime