2017-05-31 7 views
0

これは私の最初の質問です。グループ化せずに最大日付を取得する - 複雑なクエリ

質問: 結果の一部として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(...)(空でもよい)OVER状態のための最大c.dateを返します

関連する問題