根据table2选择table1中列的总和? [复制]
Posted
技术标签:
【中文标题】根据table2选择table1中列的总和? [复制]【英文标题】:Selecting sum of a column in table1 based on table2? [duplicate] 【发布时间】:2017-09-21 15:32:22 【问题描述】:我有两张表,employees 和 transactions,如下:
employees:
EmployeeID
firstname
lastname
transactions:
TransactionID
employeeID
amount
我如何获得所有名字为“John”的员工的总“金额”?谢谢!
Select sum(amount)
from transactions
where employeeID = (everyone with first name John)
【问题讨论】:
阅读加入会给你更多的想法。通过它 学习 SQL 的基本概念,包括连接。这是最关键的部分之一,如果您需要询问这个问题却不知道该怎么做,那么您在尝试开始做事之前没有花足够的时间学习。 @ChetanVasudevan 嘿 Chetan。联接不会以任何方式改变表吗? @novice 不,他们没有。 @新手。不,我的意思是研究联接,因为它可以帮助您在相关的表之间连接并从中提取数据。 【参考方案1】:INNER JOIN
应该可以解决问题。看看下面提供的查询:
SELECT SUM(T.amount) FROM
Transactions T INNER JOIN Employees E
ON T.EmployeeID = E.EmployeeID
WHERE E.FirstName = 'John'
【讨论】:
【参考方案2】:你只需要做一个JOIN
:
Select Sum(T.Amount)
From Transactions T
Join Employees E On E.EmployeeId = T.EmployeeId
Where E.FirstName = 'John'
【讨论】:
【参考方案3】:尝试:
Select sum(amount)
from transactions
where employeeID
in (Select employeeID from employees
where firstname ='firstname');
谢谢 ;)
【讨论】:
【参考方案4】:你快到了。试试:
SELECT SUM(amount)
FROM transactions t
INNER JOIN employees e
ON t.employeeID = e.employeeID
WHERE e.firstName = 'John'
或者,这也有效
SELECT SUM(amount)
FROM transactions t
WHERE t.employeeId IN (
SELECT employeeID
FROM employees e
WHERE e.firstName = 'John'
)
【讨论】:
【参考方案5】:这是我的猜测。您必须将两个表连接在一起,然后过滤您想要的数据。
SELECT SUM(tr.amount)
FROM Employees emp
INNER JOIN transactions tr ON emp.employeeId = tr.EmployeeId
WHERE emp.FirstName = 'John'
【讨论】:
以上是关于根据table2选择table1中列的总和? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
sql查询选择table1的总和和table2的总和并减去它们
提取 table1.column2 的总和,其中 table1.column1 包含来自 table2.column2 的值