SQL:从不同的表中减去并使用GROUP BY

时间:2012-12-02 22:07:01

标签: sql sql-server-2008-r2

我一直试图找到解决这个问题的答案。我理解如何从单独的表中减去,但不是在我需要它工作的上下文中。

      SELECT I.IngredientName AS 'Ingredient Name', QOH AS 'Quantity On Hand',       
      SUM(BrewLine.Quantity) AS 'Total Ingredient Used'
      FROM INGREDIENT I
      INNER JOIN BrewLine 
      ON I.IngredientName = BrewLine.IngredientName 
      GROUP BY I.IngredientName, QOH 

我需要另一个字段,我从SUM(BrewLine.Quantity)中减去QOH,以便在输出中保留'amount'。有什么方法可以解决这个问题?如果我只是减去它们然后必须将它们包含在GROUP BY中。我的输出都是歪斜的。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以尝试使用分区功能而不是分组功能,我认为这是您要完成的...

SELECT 
    I.IngredientName AS 'Ingredient Name', 
    QOH AS 'Quantity On Hand',    
    QOH - SUM(BrewLine.Quantity) OVER(PARTITION BY I.IngredientName) AS 'Amount'
FROM INGREDIENT I
INNER JOIN BrewLine 
      ON I.IngredientName = BrewLine.IngredientName