使用UNION添加带有条件的列值

时间:2016-04-15 16:55:28

标签: mysql access-vba

基本上我想在新表中添加/组合2个表的结果,如下所示:

enter image description here

(如果colA& colB匹配,则相加值,否则为原值)

我尝试使用下面的查询(在访问VBA中),但它提供了比我想要的更多:

SELECT table1.A, table1.B, table1.C
FROM table1, table2
WHERE table1.A <> table2.A
UNION
SELECT table1.A, table1.B, table1.C+table2.C AS SUM
FROM table1, table2
WHERE table1.A = table2.A AND table1.B = table2.B
UNION
SELECT table2.A, table2.B, table2.C
FROM table1, table2
WHERE table1.A <> table2.A;

尽管可以使用excel中的vlookup轻松完成;它并不像访问那么简单。使用UNION甚至是正确的吗?另外我想坚持使用查询,而不是使用记录集,其中原始数据有10000多行

1 个答案:

答案 0 :(得分:1)

SELECT A, B, SUM(C)
FROM ( 
         SELECT A, B, C
         FROM Table1
         UNION ALL
         SELECT A, B, C
         FROM Table2
     ) T
GROUP BY A, B
ORDER BY A, B