如何在SQL中找到每年最赚钱的员工?

问题描述 投票:0回答:1

我是 SQL 新手,我无法理解这个问题。 我有一个包含文件“订单”“员工”的数据库。在 “orders” 文件中,有有关订单 id、客户 id、员工 id (显示关闭订单的员工的 id)、订单日期等信息。在 “employees” 文件中,有信息关于员工 ID、姓氏、名字等。目标是每年找到最佳员工。

我正在 google collab 上做 SQL。

Database

Orders file

Employees file

带有数据库文件的 Google 驱动器

假设最好的员工是完成最多订单的员工。

我想要的结果代码是简单的代码和简单的功能,以便初学者理解代码。

有什么建议吗?如果能得到一个带有详尽解释的解决方案那就太好了。

谢谢!


我解决了同样的问题,但只解决了 1997 年的问题(1997 年最佳员工)。 对于当前的问题,我尝试做

WHERE orderdate LIKE "1996%" OR "1997%" OR "1998%"
,但没有成功。

我的问题代码仅针对 1997 年。

sql= '''
    SELECT 
      firstname, lastname,
      emps.employeeid, COUNT(emps.employeeid) AS "Total orders"

    FROM orders
      LEFT JOIN employees AS emps
        ON orders.employeeid = emps.employeeid

    WHERE orderdate LIKE "1997%"

    GROUP BY emps.employeeid

    ORDER BY "Total orders" DESC

    LIMIT 1
'''
request(sql)
sql sql-server programming-languages
1个回答
0
投票

首先确保日期字段是日期类型。其次,避免对日期文字使用双引号 ("),因为单引号 (') 是 SQL 数据库中更常见的语法。此外,请确保日期字段中没有前导或尾随空格。例如,' 2019 ' 或 ' 2020'。如果存在,您可能需要使用 TRIM 函数来删除这些空格。您还可以探索 SQL CTE 的...

© www.soinside.com 2019 - 2024. All rights reserved.