Skip to main content

607. Sales Person

Giới thiệu bài toán

Chi tiết: https://leetcode.com/problems/sales-person/

Table SalesPerson

Column NameType
sales_idint
namevarchar
salaryint
commission_rateint
hire_datedate
  • sales_id is the primary key (column with unique values) for this table.
  • Each row of this table indicates the name and the ID of a salesperson alongside their salary, commission rate, and hire date.

Table Company

Column NameType
com_idint
namevarchar
cityvarchar
  • com_id is the primary key (column with unique values) for this table.
  • Each row of this table indicates the name and the ID of a company and the city in which the company is located.

Table Orders

Column NameType
order_idint
order_datedate
com_idint
sales_idint
amountint
  • order_id is the primary key (column with unique values) for this table.
  • com_id is a foreign key (reference column) to com_id from the Company table.
  • sales_id is a foreign key (reference column) to sales_id from the SalesPerson table.
  • Each row of this table contains information about one order. This includes the ID of the company, the ID of the salesperson, the date of the order, and the amount paid.

Yêu cầu

Yêu cầu

Write a solution to find the names of all the salespersons who did not have any orders related to the company with the name RED.

Return the result table in any order. The result format is in the following example.

Ví dụ

Input

  • SalesPerson table:
sales_idnamesalarycommission_ratehire_date
1John10000064/1/2006
2Amy1200055/1/2010
3Mark650001212/25/2008
4Pam25000251/1/2005
5Alex5000102/3/2007
  • Company table:
com_idnamecity
1REDBoston
2ORANGENew York
3YELLOWBoston
4GREENAustin
  • Orders table:
order_idorder_datecom_idsales_idamount
11/1/20143410000
22/1/2014455000
33/1/20141150000
44/1/20141425000

Output:

name
Amy
Mark
Alex

Explanation:

According to orders 3 and 4 in the Orders table, it is easy to tell that only salesperson John and Pam have sales to company RED, so we report all the other names in the table salesperson.

Giải quyết bài toán

SELECT sp.name
FROM SalesPerson sp
WHERE sp.sales_id NOT IN (
SELECT o.sales_id
FROM Orders o INNER JOIN Company c ON o.com_id = c.com_id
WHERE c.name = 'RED'
);

Tham khảo: https://leetcode.com/submissions/detail/1056143690/