Practice 2: Solutions
#1 Karena masalah anggaran, departemen SDM membutuhkan laporan yang menampilkan nama belakang dan gaji karyawan yang berpenghasilan lebih dari $ 12.000.
——————————————-
SELECT last_name, salary FROM employees
WHERE salary > 12000;
——————————————-
#2 Buat laporan yang menampilkan nama belakang dan nomor departemen untuk nomor karyawan 176
———————————————
SELECT last_name, department_id FROM employees
WHERE employee_id = 176;
———————————————
#3 Departemen SDM perlu mencari karyawan dengan gaji tinggi dan gaji rendah.
tampilkan nama belakang dan gaji untuk semua karyawan yang gajinya tidak di kisaran $ 5.000 hingga $ 12.000
———————————————-
SELECT last_name, salary FROM employees
WHERE salary NOT BETWEEN 5000 AND 12000;
———————————————-
#4 Buat laporan untuk menampilkan nama belakang, ID pekerjaan, dan tanggal mulai untuk karyawan dengan nama belakang Matos dan Taylor.
Pesan kueri dalam urutan naik dengan tanggal mulai.
———————————————-
SELECT last_name, job_id, hire_date
FROM employees
WHERE last_name IN (‘Matos’, ‘Taylor’)
ORDER BY hire_date;
———————————————-
#5 Menampilkan nama belakang dan nomor departemen dari semua karyawan di departemen 20 atau 50 dalam urutan abjad menurut nama.
———————————————-
SELECT last_name, department_id FROM employees WHERE department_id IN (20, 50)
ORDER BY last_name ASC;
———————————————-
#6 Ubah mencantumkan nama belakang dan gaji karyawan yang berpenghasilan antara $ 5.000 dan $ 12.000 dan masing-masing berada di departemen 20 atau 50.
Beri label masing-masing pada kolom Karyawan dan Gaji Bulanan.
———————————————-
SELECT last_name “Employee”, salary “Monthly Salary” FROM employees WHERE salary BETWEEN 5000 AND 12000
AND department_id IN (20, 50);
———————————————-
#7 Departemen SDM membutuhkan laporan yang menampilkan nama belakang dan tanggal perekrutan untuk semua karyawan yang dipekerjakan pada tahun 1994
———————————————-
SELECT last_name, hire_date FROM employees WHERE hire_date LIKE ‘%94’;
———————————————-
Practice 3: Solutions
Practice 4: Solutions
Practice 5: Solutions
#1 Tulis kueri untuk departemen SDM untuk menghasilkan alamat semua departemen.
Gunakan tabel LOCATIONS dan COUNTRIES. Tampilkan ID lokasi, alamat jalan, kota, negara bagian atau provinsi, dan negara dalam output. Gunakan GABUNG ALAMI untuk menghasilkan hasil.
———————————————-
SELECT location_id, street_address, city, state_province, country_name
FROM locations
NATURAL JOIN countries;
———————————————-
#2 Departemen SDM membutuhkan laporan semua karyawan. Tulis kueri untuk menampilkan nama belakang, nomor departemen, dan nama departemen untuk semua karyawan.
———————————————-
SELECT last_name, department_id, department_name
FROM employees
JOIN departments
USING (department_id);
———————————————-
#3 Departemen SDM membutuhkan laporan karyawan di Toronto. Menampilkan nama belakang, pekerjaan, nomor departemen, dan nama departemen untuk semua karyawan yang bekerja di Toronto.
———————————————-
SELECT e.last_name, e.job_id, e.department_id, d.department_name
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
JOIN locations l
ON (d.location_id = l.location_id)
WHERE LOWER(l.city) = ‘toronto’;
———————————————-
#4 Buat laporan untuk menampilkan nama belakang dan nomor karyawan karyawan
beserta nama belakang dan nomor manajer manajer mereka. Beri label masing-masing kolom untuk Karyawan, Emp #, Manajer, dan Mgr #.
———————————————-
SELECT w.last_name “Employee”, w.employee_id “EMP#”,
m.last_name “Manager”, m.employee_id “Mgr#”
FROM employees w join employees m
ON (w.manager_id = m.employee_id);
———————————————-
#5 untuk menampilkan semua karyawan termasuk King, yang tidak memiliki manajer. Pesan hasilnya berdasarkan nomor karyawan.
———————————————-
SELECT w.last_name “Employee”, w.employee_id “EMP#”,
m.last_name “Manager”, m.employee_id “Mgr#”
FROM employees w
LEFT OUTER JOIN employees m
ON (w.manager_id = m.employee_id);
———————————————-
#6 Buat laporan untuk departemen SDM yang menampilkan nama belakang karyawan, nomor departemen,
dan semua karyawan yang bekerja di departemen yang sama dengan karyawan yang diberikan.
Beri label masing-masing kolom yang sesuai. Simpan skrip ke file bernama lab_05_06.sql.
———————————————-
SELECT e.department_id department, e.last_name employee,
c.last_name colleague
FROM employees e JOIN employees c
ON (e.department_id = c.department_id)
WHERE e.employee_id <> c.employee_id
ORDER BY e.department_id, e.last_name, c.last_name;
———————————————-
#7 Departemen SDM membutuhkan laporan tentang tingkat pekerjaan dan gaji.
Untuk membiasakan diri Anda dengan tabel JOB_GRADES, pertama-tama tunjukkan struktur tabel JOB_GRADES.
Kemudian buat kueri yang menampilkan nama, pekerjaan, nama departemen, gaji, dan nilai untuk semua karyawan.
———————————————-
DESC JOB_GRADES
SELECT e.last_name, e.job_id, d.department_name,
e.salary, j.grade_level
FROM employees e JOIN departments d
ON (e.department_id = d.department_id)
JOIN job_grades j
ON (e.salary BETWEEN j.lowest_sal AND j.highest_sal);
———————————————-
#8 Departemen SDM ingin menentukan nama semua karyawan yang dipekerjakan setelah Davies.
Buat kueri untuk menampilkan nama dan tanggal perekrutan karyawan yang dipekerjakan setelah karyawan Davies.
———————————————-
SELECT e.last_name, e.hire_date
FROM employees e JOIN employees davies
ON (davies.last_name = ‘Davies’)
WHERE davies.hire_date < e.hire_date;
———————————————-
#9 Departemen SDM perlu menemukan nama dan tanggal perekrutan untuk semua karyawan yang dipekerjakan di hadapan manajer mereka,
bersama dengan nama manajer mereka dan tanggal perekrutan.
———————————————-
SELECT w.last_name, w.hire_date, m.last_name, m.hire_date
FROM employees w JOIN employees m
ON (w.manager_id = m.employee_id)
WHERE w.hire_date < m.hire_date;
———————————————-
Practice 6: Solutions
#1 Departemen SDM membutuhkan kueri yang meminta pengguna untuk nama belakang karyawan. Kueri kemudian menampilkan nama belakang dan tanggal perekrutan
karyawan di departemen yang sama dengan karyawan yang namanya mereka sediakan
(tidak termasuk karyawan itu). Misalnya, jika pengguna memasukkan Zlotkey, cari semua karyawan yang bekerja dengan Zlotkey (tidak termasuk Zlotkey).
———————————————-
UNDEFINE Enter_name
SELECT last_name, hire_date
FROM employees
WHERE department_id = (SELECT department_id
FROM employees
WHERE last_name = ‘&&Enter_name’)
AND last_name <> ‘&Enter_name’;
———————————————-
#2 Buat laporan yang menampilkan jumlah karyawan, nama belakang, dan gaji semua karyawan yang menghasilkan lebih dari gaji rata-rata. Urutkan hasil dalam urutan kenaikan gaji.
———————————————-
SELECT employee_id, last_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary)
FROM employees)
ORDER BY salary;
———————————————-
#3 Tulis kueri yang menampilkan nomor karyawan dan nama belakang semua karyawan yang bekerja di departemen
dengan karyawan mana pun yang nama belakangnya berisi huruf a. Tempatkan pernyataan SQL Anda dalam file teks bernama lab_06_03.sql. Jalankan kueri Anda.
———————————————-
SELECT employee_id, last_name
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like ‘%u%’);
———————————————-
#4 Departemen SDM membutuhkan laporan yang menampilkan nama belakang, nomor departemen, dan ID pekerjaan dari semua karyawan yang ID lokasi departemennya 1700.
———————————————-
SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = 1700);

Ubah kueri sehingga pengguna diminta untuk ID lokasi. Simpan ini ke file bernama lab_06_04.sql.

SELECT last_name, department_id, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE location_id = &Enter_location);
———————————————-
#5 Buat laporan untuk SDM yang menampilkan nama belakang dan gaji setiap karyawan yang melapor ke King.
———————————————-
SELECT last_name, salary
FROM employees
WHERE manager_id = (SELECT employee_id
FROM employees
WHERE last_name = ‘King’);
———————————————-
#6 Buat laporan untuk SDM yang menampilkan nomor departemen, nama belakang, dan ID pekerjaan untuk setiap karyawan di departemen Eksekutif.
———————————————-
SELECT department_id, last_name, job_id
FROM employees
WHERE department_id IN (SELECT department_id
FROM departments
WHERE department_name = ‘Executive’);
———————————————-
#7 Ubah kueri di lab_06_03.sql untuk menampilkan nomor karyawan, nama belakang,
dan gaji semua karyawan yang menghasilkan lebih dari gaji rata-rata dan yang bekerja di departemen dengan karyawan mana pun yang nama
belakangnya mengandung u.Resave lab_06_03.sql ke lab_06_07 .sql. Jalankan pernyataan di lab_06_07.sql.
———————————————-
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name like ‘%u%’)
AND salary > (SELECT AVG(salary)
FROM employees);
———————————————-
Practice 7: Solutions
#1 Departemen SDM membutuhkan daftar ID departemen untuk departemen yang tidak mengandung ID pekerjaan ST_CLERK. Gunakan set operator untuk membuat laporan ini.
———————————————-
SELECT department_id
FROM departments
MINUS
SELECT department_id
FROM employees
WHERE job_id = ‘ST_CLERK’;
———————————————-
#2 Departemen SDM membutuhkan daftar negara yang tidak memiliki departemen di dalamnya. Tampilkan ID negara dan nama negara. Gunakan set operator untuk membuat laporan ini.
———————————————-
SELECT country_id, country_name
FROM countries
MINUS
SELECT country_id, country_name
FROM countries
NATURAL JOIN locations
NATURAL JOIN departments;
———————————————-
#3 Menghasilkan daftar pekerjaan untuk departemen 10, 50, dan 20, dalam urutan itu. Menampilkan ID pekerjaan dan ID departemen menggunakan operator yang ditetapkan.
———————————————-
COLUMN dummy NOPRINT
SELECT job_id, department_id, ‘x’ dummy
FROM employees
WHERE department_id = 10
UNION
SELECT job_id, department_id, ‘y’ dummy
FROM employees
WHERE department_id = 50
UNION
SELECT job_id, department_id, ‘z’ dummy
FROM employees
WHERE department_id = 20
ORDER BY dummy;
COLUMN dummy PRINT
———————————————-
#4 Buat laporan yang mencantumkan ID karyawan dan ID pekerjaan dari karyawan yang saat ini memiliki jabatan yang sama dengan jabatan mereka ketika mereka pada awalnya disewa oleh perusahaan (yaitu, mereka berganti pekerjaan tetapi sekarang sudah kembali melakukan pekerjaan asli mereka).
———————————————-
SELECT employee_id,job_id FROM employees INTERSECT SELECT employee_id,job_id FROM job_history;
———————————————-
#5 Departemen SDM membutuhkan laporan dengan spesifikasi sebagai berikut:
• Nama belakang dan ID departemen dari semua karyawan dari tabel KARYAWAN, terlepas dari apakah mereka termasuk dalam departemen atau tidak
• ID Departemen dan nama departemen dari semua departemen dari tabel DEPARTEMEN, terlepas dari apakah mereka memiliki karyawan yang bekerja di dalamnya atau tidak.
Tulis kueri gabungan untuk mencapai ini.
———————————————-
SELECT last_name,department_id,TO_CHAR(null)
FROM employees
UNION
SELECT TO_CHAR(null),department_id,department_name
FROM departments;
———————————————-

LEAVE A REPLY

Please enter your comment!
Please enter your name here