NAMA : MARITO ESTER SIMATUPANG NPM :43A87026210021
1.SOAL MANIPULASI DATA a. Upper, Lower, Substr
SELECT UPPER(NM_PASIEN) AS upper_name, LOWER(NM_PASIEN) AS lower_name,SUBSTR(alamat, 1, 3) AS substring_result FROM PASIEN;
b. To_Date
SELECT TO_DATE(TGL_LAHIR, 'DD/MON/YY') AS Tanggal_lahir FROM PASIEN;
c. To_Char
SELECT NO_PASIEN,NM_PASIEN,
TO_CHAR(TO_DATE(TGL_LAHIR, 'DD/MON/YY'), 'YY-MM-DD') AS format_Tanggal_Lahir FROM PASIEN;
d. Months_between
SELECT NO_PASIEN,NM_PASIEN,
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(TGL_LAHIR,'DD/MON/YY')) / 12) AS usia_tahun FROM PASIEN;
e. Decode / Case
SELECT NO_PASIEN,NM_PASIEN,
DECODE(alamat, 'TAMBUN', 'Kota Tambun', 'CIBITUNG', 'KotaCibitung', 'Lainnya') AS deskripsi_kota FROM PASIEN;
2.SOAL GROUP BY
1. Tampilkan Kode dokter, jumlah bayar terbesar Dimana jumlah bayar terbesar>=300000 Dikelompokkan Berdasarkan Kode dokter
SELECT PENDAFTARAN.ID_DOK, MAX(PEMBAYARAN.JML_BAYAR) AS JUMLAH_BAYAR_TERBESAR FROM PEMBAYARAN JOIN
PENDAFTARAN ON PEMBAYARAN.NO_DAFTAR =PENDAFTARAN.NO_DAFTAR WHERE PEMBAYARAN.JML_BAYAR >= 300000 GROUP BY PENDAFTARAN.ID_DOK;
2. Tampilkan Nama pasien, Jumlah daftar di kelompokkan berdasarkan nama pasien
SELECT NM_PASIEN,COUNT(NO_DAFTAR) AS JUMLAH_DAFTAR FROM PASIEN JOIN
PENDAFTARAN ON PASIEN.NO_PASIEN =PENDAFTARAN.NO_PASIEN GROUP BY NM_PASIEN;
3.SOAL JOIN TABEL
1. Tampilkan Tanggal daftar, Nama pasien, Id dokter, dimana Alamat pasien ( Tambun, Cibitung)
SELECT PENDAFTARAN.TGL_DAFTAR,PASIEN.NM_PASIEN, PENDAFTARAN.ID_DOK FROM PENDAFTARAN JOIN PASIEN ON PENDAFTARAN.NO_PASIEN = PASIEN.NO_PASIEN WHERE PASIEN.ALAMAT IN ('TAMBUN', 'CIBITUNG');
2. Tampilkan No daftar, Nama petugas, Nama Pasien, Keluhan dimana tanggal daftar antara 20/5/2021 s/d 25/05/2021 atau id dokter (15, 25)
SELECT PENDAFTARAN.NO_DAFTAR,PETUGAS.NM_PTG AS NAMA_PETUGAS, PASIEN.NM_PASIEN,PENDAFTARAN.KELUHAN FROM PENDAFTARAN
JOIN PETUGAS ON PENDAFTARAN.ID_PTG = PETUGAS.ID_PTG JOIN PASIEN ON PENDAFTARAN.NO_PASIEN = PASIEN.NO_PASIEN
WHERE (PENDAFTARAN.TGL_DAFTAR BETWEEN TO_DATE('20/05/2021','DD/MM/YYYY') AND TO_DATE('25/05/2021', 'DD/MM/YYYY'))
OR PENDAFTARAN.ID_DOK IN ('15', '25');
3. Tampilkan No_Bayar, Tanggal Daftar, kode petugas, Jumlah bayar dimana jumlah bayar <=300000
SELECT PEMBAYARAN.NO_BAYAR,PENDAFTARAN.TGL_DAFTAR,PENDAFTARAN.ID_PTG AS KODE_PETUGAS,PEMBAYARAN.JML_BAYAR FROM
PEMBAYARAN JOIN PENDAFTARAN ON PEMBAYARAN.NO_DAFTAR =PENDAFTARAN.NO_DAFTAR WHERE PEMBAYARAN.JML_BAYAR <= 300000;
4. Tampilkan Nama pasien, Nama dokter, keluhan dimana alamat Pasien = Tambun
SELECT PASIEN.NM_PASIEN AS NAMA_PASIEN,DOKTER.NM_DOKTER AS NAMA_DOKTER,PENDAFTARAN.KELUHAN FROM
PASIEN JOIN PENDAFTARAN ON PASIEN.NO_PASIEN =PENDAFTARAN.NO_PASIEN JOIN DOKTER ON PENDAFTARAN.ID_DOK = DOKTER.ID_DOK WHERE PASIEN.ALAMAT = 'TAMBUN';
4.SOAL VIEW
1. Buatlah View dengan Nama: Rawat1 dengan isi yaitu Tampilkan No daftar, Tanggal daftar, Nama pasien dimana nama pasien mengandung huruf ‘a’
CREATE VIEW Rawat1 AS SELECT
PENDAFTARAN.NO_DAFTAR,PENDAFTARAN.TGL_DAFTAR,PASIEN.NM_PASIEN FROM PENDAFTARAN JOIN PASIEN ON PENDAFTARAN.NO_PASIEN = PASIEN.NO_PASIEN WHERE INSTR(PASIEN.NM_PASIEN, 'a') > 0;
2. Buatlah View dengan Nama: Rawat2 dengan isi yaitu No daftar, Nama Dokter, Spesialis, Jumlah Bayar dimana spesialis(gigi, kulit, kandungan) atau jumlah bayar
<=250000
SELECT PENDAFTARAN.NO_DAFTAR,DOKTER.NM_DOKTER, DOKTER.SPESIALIS, PEMBAYARAN.JML_BAYAR FROM
PENDAFTARAN JOIN DOKTER ON PENDAFTARAN.ID_DOK = DOKTER.ID_DOK JOIN PEMBAYARAN ON PENDAFTARAN.NO_DAFTAR =
PEMBAYARAN.NO_DAFTAR WHERE DOKTER.SPESIALIS IN ('Gigi', 'Kulit', 'Kandungan') OR PEMBAYARAN.JML_BAYAR <= 250000;