SQL Senaryoları – 3

Selamlar,

7) Bu sefer kıtalara göre toplam maaşları raporlayalım. Yani raporun çıktısı şu olmalı;

Böyle bir raporu almak için ‘EMPLOYEES’ , ‘DEPARTMENTS’ , ‘LOCATIONS’ , ‘COUNTRIES’ tablolarına join atıcaz. Şöyle;

SELECT
 C.COUNTRY_NAME "Kıta",SUM(E.SALARY) "Toplam Maaş"
FROM
 EMPLOYEES E JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID = D.DEPARTMENT_ID)
JOIN LOCATIONS L
ON (D.LOCATION_ID=L.LOCATION_ID)
JOIN COUNTRIES C
ON (L.COUNTRY_ID = C.COUNTRY_ID)
GROUP BY C.COUNTRY_NAME;

8) Bu senaryoda biraz join olayını abartıcaz. HR şemasındaki bütün tabloları joinleyerek rapor alıcaz. Almamız gereken rapor; açılan prompt’a girilen ‘last_name’ e sahip çalışanların tüm bilgilerini getirmek.

Açılan prompt’a king yazdıktan sonra aşağıdaki gibi bir rapor istiyoruz.

Bunu gerçekleştirmek için tüm tablolara join atıcaz dedik. Şöyle ki ;

SELECT
 E.FIRST_NAME "Ad", E.LAST_NAME "Soyad" ,E.DEPARTMENT_ID "Dep#",D.DEPARTMENT_NAME "Departman",J.JOB_TITLE "Görev", L.CITY "Çalıştığı Şehir",C.COUNTRY_NAME "Çalıştığı Ülke",R.REGION_NAME "Bulunduğu Kıta"
FROM
 EMPLOYEES E JOIN DEPARTMENTS D
ON (E.DEPARTMENT_ID=D.DEPARTMENT_ID)
JOIN JOBS J
ON (E.JOB_ID = J.JOB_ID)
JOIN LOCATIONS L
ON (D.LOCATION_ID = L.LOCATION_ID)
JOIN COUNTRIES C
ON (L.COUNTRY_ID=C.COUNTRY_ID)
JOIN REGIONS R
ON (C.REGION_ID=R.REGION_ID)

WHERE lower(E.LAST_NAME) = '&enter_last_name';

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s