2017-05-31 71 views
0

这是我的起始查询,效果很好。获取最大日期而无需分组 - 复杂查询

问题: 我想添加到select中,将MAX(c.Date)作为结果的一部分返回[LastCostDate]。但显然,只是添加它本身需要我GROUP BY,但我不想。有没有另外一种方法可以实现这个目标?

SELECT 
o.WorkOrder as [Work Order], o.ServiceSite as [Site], o.Description as [Description], o.LeadTechnician as [PM], r.Name as [PM Name], r.RevEmail as [PM Email], o.Notes as [Notes] 
FROM 
    SMWorkOrder o 
    LEFT JOIN SMWorkCompleted c 
      ON o.WorkOrder = c.WorkOrder 
      AND c.Date >= DATEADD(WEEK,-2,CAST(GETDATE() AS DATE)) AND c.Date <= GETDATE() 
      AND c.SMCo = 1 
     LEFT JOIN HQRV r 
      ON o.LeadTechnician = r.Reviewer 
     LEFT JOIN SMInvoiceList l 
      ON o.SMCo = l.SMCo 
      AND o.WorkOrder = l.WorkOrder 
WHERE 
    c.WorkOrder is NULL 
    AND o.SMCo = 1 AND o.WOStatus not in (1,2) 
     AND o.EnteredDateTime <= DATEADD(WEEK,-2,CAST(GETDATE() AS DATE)) 
+2

'MAX(c.Date)'呢? –

+0

如果您显示样本数据和输出,它可能会有所帮助。 –

+1

用您的最大日期分组编写另一个子查询并加入。 –

回答

1

MAX (c.Date) OVER(...)将返回最大c.date在OVER条件(可以为空)