按两个表中的Clause分组 - SQL Server

时间:2017-02-09 15:28:09

标签: sql-server

我有两个名为WH_table和Store_table的表,我正在尝试创建查询以获得结果,如下面提到的结果表,你能帮助创建查询吗

仓库表

╔══════════════╦═════╗
║     Item     ║ Qty ║
╠══════════════╬═════╣
║ Foot-ball    ║   1 ║
║ Foot-ball    ║   1 ║
║ Gloves       ║   1 ║
║ Track suites ║   1 ║
╚══════════════╩═════╝

商店表

╔═══════════╦═════╗
║   Item    ║ Qty ║
╠═══════════╬═════╣
║ Foot-ball ║   1 ║
║ Foot-ball ║   1 ║
║ Gloves    ║   1 ║
╚═══════════╩═════╝

结果

╔════════════╦═══════════╦══════════════╗
║    Item    ║ Qty in WH ║ Qty in Store ║
╠════════════╬═══════════╬══════════════╣
║ Foot-ball  ║         2 ║            2 ║
║ Gloves     ║         1 ║            1 ║
║ Tracksuite ║         1 ║            0 ║
╚════════════╩═══════════╩══════════════╝

1 个答案:

答案 0 :(得分:1)

您可以使用FULL JOIN

SELECT  ISNULL(w.Item,s.Item) Item,
        ISNULL(w.Qty,0) Qty_In_WH,
        ISNULL(s.Qty,0) Qty_In_Store
FROM (  SELECT  Item,
                SUM(Qty) Qty
        FROM dbo.Warehouse 
        GROUP BY Item) w
FULL JOIN ( SELECT  Item,
                    SUM(Qty) Qty
            FROM dbo.Store
            GROUP BY Item) s
    ON w.Item = s.Item;