Professional Documents
Culture Documents
bt2 Func
bt2 Func
--1. Viết hàm tính doanh thu của năm, với năm là tham số truyền vào.
CREATE FUNCTION Tinh_DoanhThu_Nam (@Year INT)
RETURNS MONEY
AS
BEGIN
DECLARE @TongDoanhThu MONEY;
select dbo.Tinh_DoanhThu_Nam(2010)
--2. Viết hàm tính doanh thu của tháng, năm, với tháng và năm là 2 tham số truyền
vào.
create function Tinh_DoanhThu_Thang_Nam (@Thang int, @Nam int)
returns money
as
begin
declare @TongDT money;
select @TongDT = sum(TONGTG)
from HOADON
where year(NGAY) = @Nam and month(NGAY) = @Thang
return isnull(@TongDT,0);
end
select dbo.Tinh_DoanhThu_Thang_Nam(05,2010)
--3. Viết hàm tính doanh thu của khách hàng với mã khách hàng là tham số truyền
vào.
create function Tinh_DoanhThu_KhachHang (@MaKH varchar(4))
returns money
as
begin
declare @TongDT_KH money;
select @TongDT_KH = sum(TONGTG)
from KHACHHANG inner join HOADON on KHACHHANG.MAKH = HOADON.MAKH
where HOADON.MAKH = @MaKH
return isnull(@TongDT_KH,0);
end
select dbo.Tinh_DoanhThu_KhachHang('KH01')
--4. Viết hàm tính tổng số lượng bán được cho từng mặt hàng theo tháng, năm nào đó.
Với
--mã hàng, tháng và năm là các tham số truyền vào, nếu tháng không nhập vào tức là
tính
--tất cả các tháng.
create function Tinh_TongSL_BanDuoc (@MaMH varchar(5), @Thang int = null, @Nam int)
returns int
as
begin
declare @TongSL int;
select @TongSL = sum(SL)
from VATTU VT, CTHD CT, HOADON HD
where VT.MAVT = CT.MAVT and HD.MAHD = CT.MAHD and
VT.MAVT = @MaMH and (month(HD.NGAY) = @Thang or @Thang is null)
and year(HD.NGAY) = @Nam
return isnull (@TongSL,0)
end
-- Lấy tổng số lượng bán của mặt hàng 'ABC' trong tháng 5 năm 2023
SELECT dbo.Tinh_TongSL_BanDuoc('ABC', 5, 2023) AS TotalQuantitySoldForMay2023;
-- Lấy tổng số lượng bán của mặt hàng 'XYZ' trong năm 2023
SELECT dbo.Tinh_TongSL_BanDuoc('XYZ', NULL, 2023) AS TotalQuantitySoldFor2023;
--5. Viết hàm tính lãi ((giá bán – giá mua) * số lượng bán được) cho từng mặt hàng,
với mã
--mặt hàng là tham số truyền vào. Nếu mã mặt hàng không truyền vào thì tính cho tất
cả
--các mặt hàng.
create function Tinh_Lai_Tung_MatHang(@MaMH varchar(4) = null)
returns float
as
begin
declare @Lai float;