2017-04-26 23 views
1

2つのテーブルからSUMedデータを選択しようとしています。 これは見た目です。Mysql 2つのテーブルから2つのSUMを選択する

表1:

products | revenue| 
------------------| 
product1 | 10  | 
product2 | 20  | 
product1 | 20  | 

表2:

products | revenue| 
------------------| 
product1 | 40  | 
product2 | 30  | 
product2 | 40  | 

ので、クエリは、このようにそれらを合計する必要があります

products | revenue| 
------------------| 
product1 | 70  | 
product2 | 90  | 

私はこれを試してみましたが、いくつかの他のクエリが、彼らはきました間違っている。

SELECT Table1.products, Table1.SUM(`revenue`), Table2.SUM(`revenue`) 
FROM Table1 
JOIN Table2 
ON  Table1.products = Table2.products 
group by Table1.products; 

この場合、適切なクエリは何ですか?ありがとう。

答えて

1

使用UNION ALLおよびSUM集約関数:

SELECT products , SUM(revenue) revenue 
FROM 
(
    SELECT products , revenue 
    FROM table1 
    UNION ALL 
    SELECT products , revenue 
    FROM table2 
) A 
GROUP BY products 
+0

ありがとうございます、あなたの答えはより正確です。 – Geobo

2

私はunion all、その後group byを使用することをお勧めします:

select product, sum(revenue) 
from ((select product, revenue from table1) union all 
     (select product, revenue from table2) 
    ) tt 
group by product; 

これは、すべての製品は一つだけのテーブルにされている製品でも、結果セットにあることが保証されます。

+0

恐ろしいです。できます。ありがとうございました。 – Geobo

関連する問題