Translate

Monday, August 8, 2016

Contoh DML

Contoh DML

>>1. tampilkan mhs yang belum pernah mengambil frs sama sekali

select nrp,nama from db_akademik.mahasiswa mhs where not exists (select '^_^' from db_akademik.frs where mhs.nrp=db_akademik.frs.nrp ) ;

>>2. tampilkan matakuliah yang tidak ditawarkan pada tahun ajaran 2001

  select * from matakuliah mk where not exists(select '*O*' from mk_tawar twr where mk.id_mk=twr.id_mk and twr.tahun='2001')

 

>>2.5 tampilkan matakuliah yang diulang

 

SELECT mk.id_mk, mk.mata_kuliah

FROM db_akademik.matakuliah mk, (SELECT distinct id_mk from (SELECT id_mk from db_akademik.frs group by nrp, id_mk having count(*)>1)) ngulang

WHERE ngulang.id_mk=mk.id_mk

 

atau <tp cepet yg diatas>

 

SELECT distinct frs.id_mk, mk.mata_kuliah from db_akademik.frs frs, db_akademik.matakuliah mk

where frs.id_mk=mk.id_mk

group by frs.nrp, frs.id_mk, mk.mata_kuliah

having count(*)>1

 

 

2.75 tampilkan ips pertahun ajaran, semester

 

>>3. tampilkan transkip matakuliah,jika ada matakuliah yang diambil beberapa kali, diambil nilai yang terbaik untuk nrp = 5100100004

 

SELECT frs.id_mk, mk.mata_kuliah, frs.tahun, decode(frs.semester, 1, 'GASAL', 'GENAP') semester,                 frs.nilai_huruf

FROM (SELECT id_mk, konversi2(max(konversi(nilai_huruf))) nilai_huruf FROM db_akademik.frs

                     WHERE nrp = '5100100004'

                     GROUP BY id_mk) mk_ambil, db_akademik.frs, db_akademik.matakuliah mk

WHERE frs.id_mk=mk_ambil.id_mk AND mk.id_mk=frs.id_mk AND frs.nilai_huruf=mk_ambil.nilai_huruf AND frs.nrp='5100100004'

ORDER BY tahun,semester,nilai_huruf;

 

>>4. tampilkan transkip matakuliah,

   jika ada matakuliah yang diambil beberapa kali,

   diambil yang terakhir untuk nrp = 5100100004

 

SELECT mk_akhir.id_mk, matakuliah.mata_kuliah, substr(mk_akhir.th_sem, 1, 4) tahun, decode(substr(mk_akhir.th_sem,5,1),1,'GASAL','GENAP') semester, frs.nilai_huruf

                FROM (SELECT id_mk, max(tahun||semester) th_sem

                      FROM frs

                      WHERE nrp='5100100004'

                      GROUP BY id_mk) mk_akhir, frs, matakuliah

                WHERE frs.id_mk=mk_akhir.id_mk AND frs.tahun=substr(mk_akhir.th_sem, 1, 4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=mk_akhir.id_mk AND frs.nrp='5100100004'

  ORDER BY tahun,semester,nilai_huruf;

 

>>5. Tampilkan NRP,NAMA, IPK masing masing mahasiswa

 

SELECT mk_akhir.nrp, mahasiswa.nama, (sum(konversi(nilai_huruf)*matakuliah.sks)/sum(matakuliah.sks)) IPK

                FROM (SELECT nrp,id_mk,max(tahun||semester) th_sem

                      FROM frs

                      GROUP BY nrp,id_mk) mk_akhir, frs, matakuliah, mahasiswa

                WHERE frs.nrp=mk_akhir.nrp AND mk_akhir.id_mk=frs.id_mk AND frs.tahun=substr(mk_akhir.th_sem,1,4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=frs.id_mk AND mahasiswa.nrp=frs.nrp

                GROUP BY mk_akhir.nrp, mahasiswa.nama

 

6. Ranking Top 3 IPK Mahasiswa perangkatan

 

select rownum, nrp, nama, ipk from (SELECT mk_akhir.nrp, mahasiswa.nama, (sum(konversi(nilai_huruf)*matakuliah.sks)/sum(matakuliah.sks)) IPK

                FROM (SELECT nrp,id_mk,max(tahun||semester) th_sem

                      FROM frs

                      GROUP BY nrp,id_mk) mk_akhir, frs, matakuliah, mahasiswa

                WHERE frs.nrp=mk_akhir.nrp AND mk_akhir.id_mk=frs.id_mk AND frs.tahun=substr(mk_akhir.th_sem,1,4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=frs.id_mk AND mahasiswa.nrp=frs.nrp

                AND mahasiswa.nrp like '5102%'

  GROUP BY mk_akhir.nrp, mahasiswa.nama

  order by ipk desc)

  where rownum <= 3

 

7. Ranking top 10 IPK Mahasiswa semua

 select rownum, nrp, nama, ipk from ( SELECT mk_akhir.nrp, mahasiswa.nama, (sum(konversi(nilai_huruf)*matakuliah.sks)/sum(matakuliah.sks)) IPK

                FROM (SELECT nrp,id_mk,max(tahun||semester) th_sem

                      FROM frs

                      GROUP BY nrp,id_mk) mk_akhir, frs, matakuliah, mahasiswa

                WHERE frs.nrp=mk_akhir.nrp AND mk_akhir.id_mk=frs.id_mk AND frs.tahun=substr(mk_akhir.th_sem,1,4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=frs.id_mk AND mahasiswa.nrp=frs.nrp

  GROUP BY mk_akhir.nrp, mahasiswa.nama

  order by ipk desc)

  where rownum<=10

 

8. rangking rata-rata IPK perangkatan

 

9. Rangking Nilai terbaik permata kuliah per kelas

   pada Th Ajaran 2001

10 Rangking Nilai perdosen pada tahun ajaran 2001

>>11 Jumlah Total mahasiswa tiap matakuliah pertahun ajaran

>>12 mahasiswa u/ tiap tahun ajaran dan semester yang

   IPS tidak pernah < 3.2

>>13 Cari Mhs Yang Tidak Pernah Mengulang dan Nilainya > C

14 Tampilkan Mhs yang IPSnya selama 2 kali mduduki peringkat 

   top 5 dalam angkatannya

15 Tampilkan 3 mata  kuliah, nama dosen, th_ajaran, semester yang

   rata-rata nilainya paling kecil tiap tahun ajaran

>>16 tampilkan mahasiswa yang ngulang tapi tambah jelek

 

>>17. tampilkan crostab untuk

nrp           ips_2001_1             ips_2001_2 .... ips_2003_1     ips_2003_2

-------------------------------------------------------------

 

>>18 TAMPILKAN JUMLAH IPS PERANGKATAN TADA TAHUN AJARAN 2002 SEMESTER 2

ANGKATAN           IPS<2.0    IPS>2.0-2.5 IPS>2.5-3.0          IPS>3.0-3.5 IPS>3.5

--------------------------------------------------------------------

 

1.             SELECT nrp, nama FROM mahasiswa

                WHERE nrp NOT IN (SELECT nrp FROM frs);

2.             SELECT id_mk, mata_kuliah FROM matakuliah

                WHERE id_mk NOT IN (SELECT DISTINCT id_mk

                                FROM mk_tawar WHERE tahun='2001');

2.5           SELECT matakuliah.id_mk, matakuliah.mata_kuliah

                FROM matakuliah, (SELECT DISTINCT id_mk

                                FROM frs

                                GROUP BY nrp, id_mk

                                HAVING count(*)>1) ngulang

                WHERE ngulang.id_mk=matakuliah.id_mk;

3.             SELECT frs.id_mk, mk.mata_kuliah, frs.tahun, decode(frs.semester, 1, 'GASAL', 'GENAP') semester, frs.nilai_huruf

                FROM (SELECT id_mk, konversi2(max(konversi(nilai_huruf))) nilai_huruf

                      FROM frs

                      WHERE nrp = '5100100004'

                      GROUP BY id_mk) mk_ambil, frs, matakuliah mk

                WHERE frs.id_mk=mk_ambil.id_mk AND mk.id_mk=frs.id_mk AND frs.nilai_huruf=mk_ambil.nilai_huruf AND frs.nrp='5100100004'

                ORDER BY tahun, semester, id_mk;

4.             SELECT mk_akhir.id_mk, matakuliah.mata_kuliah, substr(mk_akhir.th_sem, 1, 4) tahun, decode(substr(mk_akhir.th_sem,5,1),1,'GASAL','GENAP') semester, frs.nilai_huruf

                FROM (SELECT id_mk, max(tahun||semester) th_sem

                      FROM frs

                      WHERE nrp='5100100004'

                      GROUP BY id_mk) mk_akhir, frs, matakuliah

                WHERE frs.id_mk=mk_akhir.id_mk AND frs.tahun=substr(mk_akhir.th_sem, 1, 4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=mk_akhir.id_mk AND frs.nrp='5100100004'

                ORDER BY tahun, semester, id_mk;

5.             SELECT mk_akhir.nrp, mahasiswa.nama, (sum(konversi(nilai_huruf)*matakuliah.sks)/sum(matakuliah.sks)) IPK

                FROM (SELECT nrp,id_mk,max(tahun||semester) th_sem

                      FROM frs

                      GROUP BY nrp,id_mk) mk_akhir, frs, matakuliah, mahasiswa

                WHERE frs.nrp=mk_akhir.nrp AND mk_akhir.id_mk=frs.id_mk AND frs.tahun=substr(mk_akhir.th_sem,1,4) AND frs.semester=substr(mk_akhir.th_sem,5,1) AND matakuliah.id_mk=frs.id_mk AND mahasiswa.nrp=frs.nrp

                GROUP BY mk_akhir.nrp, mahasiswa.nama

                ORDER BY mk_akhir.nrp;

11.           SELECT mk_tawar.id_mk, matakuliah.mata_kuliah, mk_tawar.tahun, sum(mk_tawar.terisi) jumlah_pertahun

                FROM mk_tawar, matakuliah

                WHERE matakuliah.id_mk=mk_tawar.id_mk

                GROUP BY mk_tawar.id_mk, matakuliah.mata_kuliah, mk_tawar.tahun

                ORDER BY mk_tawar.tahun, mk_tawar.id_mk;

12.           SELECT mk.nrp, mahasiswa.nama, mk.tahun, mk.semester, (sum(mk.nilai_angka*matakuliah.sks)/sum(matakuliah.sks)) IPS

                FROM (SELECT nrp, id_mk, tahun, semester, decode(nilai_huruf,'A',4,'AB',3.5,'B',3,'BC',2.5,'C',2,'D',1,0) nilai_angka

                      FROM frs

                      ORDER BY nrp, tahun, semester) mk, matakuliah, mahasiswa

                WHERE matakuliah.id_mk=mk.id_mk AND mahasiswa.nrp=mk.nrp

                GROUP BY mk.nrp, mahasiswa.nama, mk.tahun, mk.semester

                HAVING (sum(mk.nilai_angka*matakuliah.sks)/sum(matakuliah.sks))>3.2

                ORDER BY mk.nrp, mk.tahun, mk.semester;

13.           SELECT mahasiswa.nrp, mahasiswa.nama

                FROM mahasiswa

                WHERE mahasiswa.nrp NOT IN

                      (SELECT DISTINCT nrp

                       FROM frs

                       HAVING count(*)>1

                       GROUP BY nrp, id_mk) AND mahasiswa.nrp NOT IN

                      (SELECT distinct nrp

                       FROM frs

                       WHERE nilai_huruf >= 'C')

                ORDER BY nrp;

 

16.           SELECT DISTINCT hasil.nrp, mahasiswa.nama

                FROM (SELECT ngulang.nrp, ngulang.id_mk, (frs.tahun||frs.semester||frs.nilai_huruf) th_sem_nh

                      FROM (SELECT nrp, id_mk

                                    FROM frs

                                    GROUP BY nrp, id_mk

                                    HAVING count(*)>1) ngulang, frs

                      WHERE ngulang.nrp=frs.nrp and ngulang.id_mk=frs.id_mk

                      ORDER BY nrp, id_mk, th_sem_nh) hasil, mahasiswa

                WHERE mahasiswa.nrp=hasil.nrp

                GROUP BY hasil.nrp, mahasiswa.nama, hasil.id_mk

                HAVING substr(min(hasil.th_sem_nh),6,1)<substr(max(hasil.th_sem_nh),6,1)

                ORDER BY hasil.nrp;

 

No comments:

Post a Comment

silahkan membaca dan berkomentar