2013-06-06 156 views
1

two tables (Table1 and Table2)具有相同的列。将结果结合在两个表中

Customerno, amount 

还有第三个表Customers与列:

Customerno, customername 

目前,以下两个查询运行,并使用Excel来源的组合的结果(VLOOKUP等)

Select a.customerno, b.customername, sum(a.amount) 
FROM Table1 a join customers b on a.Customerno = b.Customerno 
group by a.customerno, b.customername 


Select a.customerno, b.customername, sum(a.amount) 
FROM Table2 a join customers b on a.Customerno = b.Customerno 
group by a.customerno, b.customername 

将这两个查询合并为一个以获得所需结果的正确方法是?

回答

1
Select a.customerno, b.customername, sum(a.amount) 
FROM 
( 
    SELECT Customerno, amount FROM Table1 
    UNION ALL -- use this keep duplicates ie amounts from both tables 
    -- UNION -- will discard duplicates 
    SELECT Customerno, amount FROM Table2 
) a 
join customers b on a.Customerno = b.Customerno 
group by a.customerno, b.customername 
+0

谢谢。这有帮助。 – user1955215

0

您需要为此使用UNION声明。这是联合这两者的最简单方法,你可以从这里开始工作。

select * 
from 
(

Select a.customerno, b.customername, sum(a.amount) 
FROM Table1 a join customers b on a.Customerno = b.Customerno 
group by a.customerno, b.customername 

union -- or union all if you want to keep the duplicates 

Select a.customerno, b.customername, sum(a.amount) 
FROM Table2 a join customers b on a.Customerno = b.Customerno 
group by a.customerno, b.customername 
) P