2017-05-31 74 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條件(可以爲空)