【问题标题】:Selecting sum of a column in table1 based on table2? [duplicate]根据table2选择table1中列的总和? [复制]
【发布时间】: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 不,他们没有。
  • @新手。不,我的意思是研究联接,因为它可以帮助您在相关的表之间连接并从中提取数据。

标签: mysql sql database


【解决方案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'
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-18
            • 1970-01-01
            • 1970-01-01
            • 2017-11-21
            • 1970-01-01
            相关资源
            最近更新 更多