我有两个带有一些虚拟数据的表。我需要找到所有比他们的经理赚更多的员工。我相信这个练习的重点是学习如何做子查询。
我可以隔离经理、他们的薪水和他们工作的公司,但我不知道如何继续将他们的员工薪水与 SQL 中的经理进行比较。回到我身边的错误是“当子查询没有通过 EXISTS 引入时,只能在选择列表中指定一个表达式。” 我明白,但如果我不能从子查询中至少传递经理的姓名和薪水,那么我不知道如何解决问题。
如果有人可以指出我已回答的类似帖子或一些可以提供一些见解的阅读,我将不胜感激。
我的查询获取有关经理的信息
SELECT DISTINCT w.salary, w.pname, w.cname
FROM WorksFor w
INNER JOIN Manages m
ON w.pname = m.mname
Run Code Online (Sandbox Code Playgroud)
员工/公司表
CREATE TABLE WorksFor (
employerID int identity(1,1) primary key,
pname varchar(30),
cname varchar(20),
salary int
);
INSERT INTO WorksFor(pname,cname,salary)
VALUES
('John Smith','BigStore',27500),
('Jane Doe','SmallStore',19000),
('Adam Scott','BigStore',50000),
('Bonnie Noel','SmallMfg',25000),
('Cassie Johnson','BigStore',35000),
('Donald Eckerson','SmallStore',29000),
('Erin Joel','SmallMfg',49000);
CREATE TABLE Manages (
manageID int identity(1,1) primary key,
pname varchar(30),
mname varchar(30)
);
Run Code Online (Sandbox Code Playgroud)
经理表
INSERT INTO Manages(pname,mname)
VALUES
('John …
Run Code Online (Sandbox Code Playgroud)