Sql server 如何使用sum函数进行分组查询

Sql server 如何使用sum函数进行分组查询,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我在SQL Server中有inventoryTransaction表,如下所示: productID StockLocationID TransactionType Quantity 1046 1 "in" 100 1046 1 "out" 20 1046 2 "in" 70 1046

我在SQL Server中有
inventoryTransaction
表,如下所示:

productID StockLocationID TransactionType   Quantity
1046          1                "in"           100
1046          1               "out"            20
1046          2                "in"            70
1046          2               "out"            65
...
如何进行查询,输出如下:

productID  StockLocationID     stock
1046          1                 80
1046          2                 5
您可以尝试:

SELECT 
    productID, 
    StockLocationID,
    SUM(CASE 
            WHEN TransactionType = 'out' THEN -1 
            ELSE 1 
        END) * Quantity) AS stock
GROUP BY 
    productID, 
    StockLocationID
您可以尝试:

SELECT 
    productID, 
    StockLocationID,
    SUM(CASE 
            WHEN TransactionType = 'out' THEN -1 
            ELSE 1 
        END) * Quantity) AS stock
GROUP BY 
    productID, 
    StockLocationID

相同,但略为缩短,以消除不必要的乘法:

SELECT 
    productID, 
    StockLocationID,
    SUM(CASE TransactionType 
            WHEN 'out' THEN -Quantity 
            ELSE Quantity 
        END) AS stock
GROUP BY 
    productID, 
    StockLocationID

相同,但略为缩短,以消除不必要的乘法:

SELECT 
    productID, 
    StockLocationID,
    SUM(CASE TransactionType 
            WHEN 'out' THEN -Quantity 
            ELSE Quantity 
        END) AS stock
GROUP BY 
    productID, 
    StockLocationID

ProductID StockLocationID TransActionType数量谢谢。请帮助我ProductID StockLocationID TransActionType Quantity谢谢。请帮我查一下答案Tim3880谢谢你的答案Tim3880