2

私は2つのテーブルを持っています

Warehouse_1

item  qty 
--------
3001   1
3003   3
3004   1
3006   2

Warehouse_2

item   qty
----------
3001    2
3002    3
3006    3
3008    6

これらの2つのテーブルを3つにまとめて、このような同じアイテムの数量を追加したいと思います。

Warehouse_3

item    qty
-----------
3001     3
3002     3
3003     3
3004     1
3006     5
3008     6

SQL Serverでこれを実現するにはどうすればよいですか?

4

5 に答える 5

4

を使用してそれを達成できますUNION。まず、(両方のテーブルの) すべてのデータを結合する必要があり、サブクエリを使用して、関数を使用してグループ化しGROUP BY、合計を追加できSUMます。

SELECT Item, SUM(qty) as Qty FROM
(
   SELECT Item, qty FROM warehouse_1
   UNION
   SELECT Item, qty FROM warehouse_2
) as a
GROUP BY item;

についてもっと見るUNION

詳細についてはGROUP BY句を参照してください: (そこについても見つけることができますSUM。)

于 2012-09-11T12:37:02.947 に答える
0
CREATE OR REPLACE VIEW warehouse_3 as 
    SELECT coalesce(w1.item,w2.item) as item, w1.qty+w2.qty as qty
    FROM warehouse_1 as w1
    OUTER JOIN warehouse_2 as w2
    ON w1.item = w2.item;

そのアイテムがユニークであると仮定します。一部のデータベースでは、 colescenvlです。次に、次のように呼び出すことができます。

select * from warehouse_3;

そしてそれは合計を返します。

また、W1またはW2で数量の一部を変更すると、W3で自動的に修正されます。

于 2012-09-11T12:37:50.830 に答える
0

あなたはこれを試すことができます

SELECT item , SUM(qty)
FROM (
   SELECT item, qty
   FROM warehouse_1
   UNION
   SELECT item, qty
   FROM warehouse_2
) AS U GROUP BY item
于 2012-09-11T12:38:10.143 に答える
0

してみてください:

select item,sum(qty) from(
    select item, Qty from warehouse_1 
    UNION
    select item, Qty from warehouse_2
)x
group by item
于 2012-09-11T12:36:58.953 に答える
0

これを試して:

create table tbl1(item int,qty int)
INSERT INTO tbl1
VALUES(3001,1),(3003,3),(3004,1),(3006,2)

create table tbl2(item int,qty int)
INSERT INTO tbl2
VALUES(3001,2),(3002,3),(3006,3),(3008,6)


select isnull(t1.item,t2.item) as item,isnull(t1.qty,0)+isnull(t2.qty,0) as qty from tbl1 t1 full outer join tbl2 t2 on t1.item =t2.item 
order by 1
于 2012-09-11T12:57:48.613 に答える