# name: test/sql/merge/merge_into_subquery.test # description: Test MERGE INTO with subqueries # group: [merge] statement ok PRAGMA enable_verification statement ok CREATE TABLE Totals(item_id int, balance int); statement ok CREATE TABLE Buy(item_id int, volume int); statement ok INSERT INTO Buy values(10, 1000), (30, 300), (20, 2000); query I MERGE INTO Totals USING (VALUES (10), (30)) Updates(item_id) ON Totals.item_id = Updates.item_id WHEN MATCHED THEN UPDATE SET balance = (SELECT SUM(volume) FROM Buy WHERE item_id=Totals.item_id) WHEN NOT MATCHED THEN INSERT VALUES (Updates.item_id, (SELECT SUM(volume) FROM Buy WHERE item_id=Updates.item_id)); ---- 2 query II FROM Totals ORDER BY ALL ---- 10 1000 30 300 statement ok INSERT INTO Buy values(10, 2000) query I MERGE INTO Totals USING (VALUES (10), (20)) Updates(item_id) ON Totals.item_id = Updates.item_id WHEN MATCHED THEN UPDATE SET balance = (SELECT SUM(volume) FROM Buy WHERE item_id=Totals.item_id) WHEN NOT MATCHED THEN INSERT VALUES (Updates.item_id, (SELECT SUM(volume) FROM Buy WHERE item_id=Updates.item_id)); ---- 2 query II FROM Totals ORDER BY ALL ---- 10 3000 20 2000 30 300