2014-02-28 114 views
0

我有一個更新查詢SQL Server管理Studio 2012中沒有給我預期的結果。我相信這是因爲我不得不將IJDATE字段添加到SELECT和GROUP BY,因此它不能正確求和。我正在嘗試更新每個供應商當前的月/年。有沒有更好的方法來編寫這個UPDATE查詢?T-SQL更新查詢沒有給出預期的結果

UPDATE S 
SET S.PurchaseDlr = I.PurchaseDlr 
FROM (SELECT 
      IJVEND, 
      IJDATE, 
      SUM(IJQTY * IJCOST) AS PurchaseDlr 
     FROM 
      dbo.S2K_IJ 
     WHERE 
      IJTYPE IN ('I','ID') 
     GROUP BY 
      IJVEND, 
      IJDATE) I 
INNER JOIN PurchaseDollars S on I.IJVEND = S.Vendor AND S.MonthNum = MONTH(I.IJDATE) AND S.Year = YEAR(I.IJDATE) 

回答

1

您按日期分組,但是由年月看起來像你想組:

UPDATE S 
SET S.PurchaseDlr = I.PurchaseDlr 
FROM (SELECT 
      IJVEND, 
      MONTH(IJDATE) AS Month, 
      YEAR(IJDATE) AS Year, 
      SUM(IJQTY * IJCOST) AS PurchaseDlr 
     FROM 
      dbo.S2K_IJ 
     WHERE 
      IJTYPE IN ('I','ID') 
     GROUP BY 
      IJVEND, 
      MONTH(IJDATE), 
      YEAR(IJDATE)) I 
INNER JOIN PurchaseDollars S 
    ON I.IJVEND = S.Vendor 
     AND S.MonthNum = I.Month 
     AND S.Year = I.Year 
+0

感謝您的幫助! – tsqln00b

相關問題