2016-10-08 25 views
0

我正在执行两个查询,第一个用于内部联接以从表 中获取数据,第二个组通过查询获得总和。如何通过select语句执行与另一个组的联接查询

但有什么办法可以在一个查询中执行两个查询吗?

首先查询:

SELECT e.name,Value,address FROM table1 e JOIN table2 p ON p.name = e.name; 
+--------+---------+------+----+ 
| name | Value | address | 
+--------+---------+------+----+ 
| name1 | 124  | address1 | 
| name2 | 12  | address2 | 
| name3 | 123  | address3 | 
| name2 | 15  | address2 | 
+-------------+---------+------+ 

第二个查询:

SELECT name 
    , SUM(Value) Total 
    FROM table1 
GROUP BY name; 
+-------------+-------+ 
| name  | Total | 
+-------------+-------+ 
| name3  | 123 | 
| name2  | 27 | 
| name1  | 124 | 
+-------------+-------+ 

和我要的是对每名之列

+-------------+------------+ 
| name | sum | address | 
+-------------+------------+ 
| name1 | 124 | address1 | 
| name2 | 12 | address2 | 
| name3 | 123 | address3 | 
+-------------+------------+ 
+0

是SQLserver还是MYSQL – TheGameiswar

回答

1

尝试使用

SELECT donation_entry.Person_name,B.Total,Receipt,Date,month,Year,print_year,Valu e,address 
FROM donation_entry 
JOIN profile ON donation_entry.Person_name = profile.Person_name 
JOIN (select Person_name,sum(Value) as Total from donation_entry group by Person_name)B on B.Person_name=donation_entry; 
0

添加SUM骨料value列在第一个查询和Group by

添加 非聚集
SELECT table1.name, 
      Sum(Value), 
      address 
    FROM table1 
      JOIN table2 
      ON table1.name = table2.name 
    GROUP BY table1.name, 
       address 

考虑到name是唯一的在table2

相关问题