加入给出错误的总和

Fil*_*son 1 sql teradata

我正在尝试编写一个select语句,为每个名称收集一行.因此预期的产出是:

名称= Al,薪水= 30,奖金= 10

表格1

Name   Salary
Al     10
Al     20
Run Code Online (Sandbox Code Playgroud)

TABLE_2

Name  Bonus
Al    5
Al    5
Run Code Online (Sandbox Code Playgroud)

我该怎么写?我试着:

Select t1.Name, SUM(t1.Salary), SUM(t2.Bonus) FROM table_1 t1
LEFT JOIN table_2 t2 
ON t1.Name=t2.Name
Group By 1
Run Code Online (Sandbox Code Playgroud)

我得到奖金20而不是10作为奖金.这可能是因为t1中有两行累加奖金.如何修改我的功能以获得正确的奖励?

Cod*_*odo 5

按员工分别对表进行分组,然后加入它们:

SELECT t1.Name, Salary, Bonus
FROM (
  SELECT Name, SUM(Salary) Salary
  FROM table_1
  GROUP BY Name
) t1
LEFT JOIN (
  SELECT Name, SUM(Bonus) Bonus
  FROM table_2
  GROUP BY Name
) t2 ON t1.Name = t2.Name
Run Code Online (Sandbox Code Playgroud)