【发布时间】:2020-08-21 12:26:21
【问题描述】:
Insert into Employee values (1,'Abdul Rehman','Street No 12','Kamra Kalan')
Insert into Employee values (2,'Iram Bhatti','Street No 10','Attock')
Insert into Employee values (3,'Danial Aziz','Street No 12','Kamra Kalan')
Insert into Employee values (4,'Kashif Butt','Street No 10','Attock')
Insert into Employee values (5,'Zohaib Butt','Street No 13','Peshawar')
insert into Company values (1,'First Bank Co-Operation','Hydrabaad');
insert into Company values (2,'Small Bank Co-Operation','Kashmir');
Insert into Works values (1,2,5000)
Insert into Works values (2,1,40000)
Insert into Works values (1,3,56000)
Insert into Works values (1,4,8000)
Insert into Works values (2,2,78000)
问题: 编写查询以获取收入超过 Small Bank Co operation 每位员工的员工姓名。
我的查询解决方案:
Select Employee.person_name from Works
inner join Employee on Employee.person_Id
=Works.Person_Id inner join Company on
Company.Company_Id=Works.Company_Id
and Salary>(Select Salary from works
Where Company.Company_name='Small Bank Co-Operation')
但是这个查询对我不起作用,我怎样才能得到这个?
【问题讨论】:
-
Create Table Employee ( person_Id int primary key , person_name varchar (100), street varchar(100), City varchar(100) ) Create table Works( Company_Id int, Person_Id int, Salary int ) Create Table Company( Company_Id int Primary key , Company_name varchar(100), Company_City varchar(100) ) -
您的子查询错误。首先关注这一点:编写一个完整的查询,其中包含任何必要的连接,它返回 Small Bank 任何人的最高薪水。作为提示,您应该以
select max(Salary)开头。一旦你得到这个工作,只返回一个数字,你就可以把它放回你的原始查询中。 -
但是他们让我选择员工的名字而不是薪水
-
是的,但是在你找到Small Bank的工资超过最高工资的员工姓名之前,你需要找到Small Bank的最高工资。所以解决这个问题,然后使用您编写的查询在您的主查询中找到它。
-
@ALI,单独考虑数据表,首先想办法获取所有必要信息,然后专注于获得最高薪水
标签: sql sql-server sql-server-2008