תרגול זה מסתמך על מאגר הנתונים HR. לתרגולים נוספים בנושאים שונים ניתן להשתמש במדריך ה SQL.

 

1.   הציגו מתוך טבלת Employees  את שמם הפרטי ושכרם של העובדים אשר מרוויחים יותר מעובד מספר 103.

2.      הציגו מתוך טבלת Departments  את מספר המחלקה ואת שם המחלקה עבור המחלקות שהמיקום שלהן (Location_id) שווה למיקום של מחלקה מספר 90.

3.      הציגו מתוך טבלת Employees  את שם משפחתם ותאריך העסקתם של העובדים אשר הועסקו אחרי עובד מספר 101.

4.      הציגו מתוך טבלת Employees  את שמם הפרטי, שם משפחתם ומספר מחלקתם של העובדים אשר שם מחלקתם שלהם היא Sales.

5.      הציגו מתוך טבלת Departments  את מספר המחלקה ושם המחלקה עבור המחלקות אשר ממוקמות בעיר Toronto .

6.      הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים אשר נמצאים באותה מחלקה כמו עובד מספר 124, חוץ מעובד מספר 124.

7.      הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים עבור העובדים אשר מרוויחים יותר מהממוצע.

8.      הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים עבור העובדים אשר שכרם שווה לאחת מהמשכורות במחלקה מס' 20.

9.      הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים עבור העובדים אשר שכרם גבוה מכל המשכורות במחלקה מס' 50.

10.  הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים עבור העובדים אשר מרוויחים לפחות יותר מהשכר המינימלי במחלקה מס' 60.

11.  הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים עבור העובדים אשר מרוויחים פחות מהמינימום במחלקה מס' 90.

12.  הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים אשר ממוקמים בעיר Seattle.

13.  הציגו מתוך טבלת Employees  את שמם הפרטי, שכרם ומספר מחלקתם של העובדים אשר מרוויחים פחות מהממוצע וגם נמצאים במחלקה בו עובד אדם ששמו הפרטי הוא Kevin.

 

פתרונות


הפתרונות הבאים תקפים לסביבת מיקרוסופט ואורקל

1. 
SELECT last_name , salary 
FROM employees 
WHERE salary > (SELECT salary 
                FROM employees 
                WHERE employee_id = 103)
2.
SELECT department_id , department_name 
FROM departments 
WHERE location_id = (SELECT location_id 
                     FROM  departments  
                     WHERE department_id = 90)                     
3. 
SELECT last_name , hire_date 
FROM employees 
WHERE hire_date > (SELECT hire_date 
                   FROM employees 
                   WHERE employee_id = 101)
4.  
SELECT first_name , last_name , department_id 
FROM employees 
WHERE department_id = (SELECT department_id 
                       FROM departments 
                       WHERE department_name = 'Sales')
5.  
SELECT department_id , department_name 
FROM departments 
WHERE location_id = (SELECT location_id 
                     FROM locations 
                     WHERE city = 'Toronto')
6.  
SELECT first_name , last_name , salary , department_id 
FROM employees 
WHERE department_id = (SELECT department_id 
                       FROM employees 
                       WHERE employee_id = 124)
AND employee_id <> 124
7. 
SELECT first_name , last_name , salary , department_id 
FROM employees 
WHERE salary > (SELECT AVG(salary)
                FROM employees )
8.  
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE salary IN (SELECT salary 
                 FROM employees 
                 WHERE department_id = 20)
9.  
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE salary > ALL (SELECT salary 
                 FROM employees 
                 WHERE department_id = 50)
10.  
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE salary > ANY (SELECT salary 
                    FROM employees 
                    WHERE department_id = 60)
11. 
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE salary < ALL (SELECT salary 
                    FROM employees 
                    WHERE department_id = 90)
12.
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE department_id IN (SELECT department_id 
                       FROM departments 
                       WHERE location_id = (SELECT location_id 
                                            FROM locations 
                                            WHERE city = 'Seattle'))
13. 
SELECT first_name , last_name , salary , department_id 
FROM employees
WHERE        salary < (SELECT AVG(salary) 
                       FROM employees )
AND   department_id = (SELECT department_id 
                       FROM employees 
                       WHERE first_name = 'Kevin')