Joining Two Tables Sql
I have a question. I have two tables employees and salary and I want to display the full name and salary grade of all employee who’s grade_ID is 2 or 3 sort by employee_ID. Here
Solution 1:
It may be the query you're looking for:
SELECT E.EMPLOYEE_ID
,E.FIRST_NAME
,E.LAST_NAME
,E.SALARY
FROM employees E
INNER JOIN salary S ON S.LOW_SALARY <= E.SALARY
AND S.HIGH_SALARY >= E.SALARY
AND S.SALARY_ID IN (2,3)
ORDERBY E.EMPLOYEE_ID
Hope this will help you.
Solution 2:
Simply have to use a join condition that compares the employee salary with the low and high limits of the salary rank, i.e.
SELECT E.*, S.* FROM Employee AS E
INNER JOIN dbo.Salary AS S
ON S.LOW_SALARY <= E.Salary AND S.High_Salary >= E.Salary
If you want, you can filter by Salary_Id between 2 and 3
NOTE: This syntax should work in the 3 types of servers.
Test data, for SQL Server:
CREATETABLE Salary (Salary_Id INT, LOW_SALARY INT, High_Salary INT)
INSERTINTO Salary VALUES(1,1,250000)
INSERTINTO Salary VALUES(2,250001,500000)
INSERTINTO Salary VALUES(3,500001,750000)
INSERTINTO Salary VALUES(4,750001,999999)
CREATETABLE Employee (Employee_Id INT, FIRST_NAME varchar(50), Last_NAME varchar(50), Salary INT)
INSERTINTO Employee VALUES(1, 'James', 'Smith', 800000)
Solution 3:
I'll give the SQL Server (2008+) answer.
SELECT E.FIRST_NAME, E.last_name, S.SALARY_GRADE_ID, E.SALARY
FROM employees2 E
JOIN salary_grades S ON (E.SALARY BETWEEN S.LOW_SALARY AND S.HIGH_SALARY) AND S.SALARY_ID IN (2, 3)
ORDERBY E.EMPLOYEE_ID;
Solution 4:
SELECT employees2.FIRST_NAME, employees2.LAST_NAME, employees2.SALARY, salary_grades.SALARY_GRADE_ID
FROM employees2, salary_grades
WHERE employees2.SALARY BETWEEN salary_grades.LOW_SALARY AND salary_grades.HIGH_SALARY
ORDERBY salary_grades.SALARY_GRADE_ID
So I tried using this script, it works but do i use IN to display the range of 2 and 3 in sqldeveloper?
Post a Comment for "Joining Two Tables Sql"