Nama: M.Amaruna Sahona Npm:2021110117 Prodi:Teknik Informatika Kelas:Karyawan
Nama: M.Amaruna Sahona Npm:2021110117 Prodi:Teknik Informatika Kelas:Karyawan
AMARUNA SAHONA
Npm :2021110117
Prodi :Teknik Informatika
Kelas :Karyawan
SOAL
Kerjakan soal nomor 55 s.d 60. Anda cukup mengirimkan tangkapan layar pekerjaan Anda
di komputer, yaitu definisi fungsi dan hasil eksekusinya.
DEFINISI FUNGSI
Fungsi yang ditentukan pengguna adalah rutinitas Transact-SQL atau common language
runtime (CLR) yang menerima parameter, melakukan tindakan, seperti perhitungan kompleks, dan
mengembalikan hasil tindakan tersebut sebagai nilai. Nilai yang dikembalikan dapat berupa nilai
skalar (tunggal) atau tabel.
Code:
--55 Daftar Nama barang, total jumlah dan total Rp yg terjual
-- di antara dua tanggal tertentu
CREATE FUNCTION TotalPenjualanBarang (
@TanggalMulai DATE,
@TanggalAkhir DATE
)
RETURNS TABLE
AS
RETURN
SELECT B.Nama AS NamaBarang, SUM(DF.Jumlah) AS TotalJumlah, SUM(DF.Jumlah
* DF.HargaSatuan) AS TotalPenjualan
FROM Barang B
INNER JOIN DetilFaktur DF ON B.KdBarang = DF.KdBarang
INNER JOIN Faktur F ON DF.NoFaktur = F.NoFaktur
WHERE F.Tgl BETWEEN @TanggalMulai AND
@TanggalAkhir GROUP BY B.Nama;
--58 Menghitung total jumlah unit barang terjual untuk kode barang
-- tertentu pada tahun tertentu.
CREATE FUNCTION TotalJumlahTerjual (
@KodeBarang CHAR(4),
@Tahun SMALLINT
)
RETURNS TABLE
AS
RETURN
SELECT SUM(DF.Jumlah) AS TotalJumlah
FROM DetilFaktur DF
INNER JOIN Faktur F ON DF.NoFaktur = F.NoFaktur
WHERE DF.KdBarang = @KodeBarang AND YEAR(F.Tgl) = @Tahun;
--59 Daftar Tgl, total Rp hasil penjualan per tgl pada bulan
-- dan tahun tertentu.
CREATE FUNCTION TotalPenjualanPerTanggal (
@Bulan TINYINT,
@Tahun SMALLINT
)
RETURNS TABLE
AS
RETURN
SELECT F.Tgl, SUM(DF.Jumlah * DF.HargaSatuan) AS TotalPenjualan
FROM Faktur F
INNER JOIN DetilFaktur DF ON F.NoFaktur = DF.NoFaktur
WHERE MONTH(F.Tgl) = @Bulan AND YEAR(F.Tgl) = @Tahun
GROUP BY F.Tgl;
--60 Daftar Hari, Tgl, KdBarang, total jumlah barang terjual serta
-- Rp hasil penjualan pada tahun tertentu
CREATE FUNCTION TotalPenjualanPerHari (
@Tahun SMALLINT
)
RETURNS TABLE
AS
RETURN
SELECT DATEPART(WEEKDAY, F.Tgl) AS Hari, F.Tgl, DF.KdBarang,
SUM(DF.Jumlah) AS TotalJumlah, SUM(DF.Jumlah * DF.HargaSatuan) AS
TotalPenjualan
FROM Faktur F
INNER JOIN DetilFaktur DF ON F.NoFaktur = DF.NoFaktur
WHERE YEAR(F.Tgl) = @Tahun
GROUP BY DATEPART(WEEKDAY, F.Tgl), F.Tgl, DF.KdBarang;
-- 55
SELECT * FROM dbo.TotalPenjualanBarang('2014-01-01', '2014-12-31');
-- 56
SELECT * FROM dbo.TotalPenjualanBarangPerTanggal('KB03', '2014-04-14');
-- 57
SELECT * FROM dbo.TotalPenjualanPelanggan('2014-01-01', '2014-12-31');
-- 58
SELECT * FROM dbo.TotalJumlahTerjual('KB03', 2014);
-- 59
SELECT * FROM dbo.TotalPenjualanPerTanggal(4, 2014);
-- 60
SELECT * FROM dbo.TotalPenjualanPerHari(2014);
Output: