use IT1PHUT_2021
go
select top 10 * from tblHanghoa
-- 1. hàm trả về 1 giá trị
-- giá trị tồn = giá nhập * số tồn
CREATE FUNCTION fnTinhTienTon
(
@soton float, @gianhap float
)
RETURNS float
AS
BEGIN
RETURN @soton * @gianhap
END
GO
CREATE FUNCTION fnTinhTienTon1
(
@hhid uniqueidentifier
)
RETURNS float
AS
BEGIN
--//code tinh toán
declare @soton float, @gianhap float
select top 1 @soton = hh_soton, @gianhap = hh_gianhap from tblHanghoa where hh_id = @hhid
RETURN @soton * @gianhap
END
GO
-- call function return 1 value in select command
select top 10 hh_ma, hh_ten, hh_gianhap, hh_soton
, dbo.fnTinhTienTon(HH_Soton, HH_GIANHAP) giatriton
, dbo.fnTinhTienTon1(hh_id) giatriton
from tblHanghoa
-- 2. hàm trả về 1 bảng dữ liệu
-- viết 1 hàm trả về: mã hàng hóa, tên hàng, giá trị tồn với những hàng hóa có số tồn > 10
-- option2, có tham số truyền vào
create FUNCTION fnDanhsachHangTonVaGiatri
(
@soluong float
)
RETURNS @tb TABLE (ma nvarchar(1000), ten nvarchar(1000), giatriton float)
AS
BEGIN
insert into @tb (ma, ten, giatriton)
SELECT hh_ma, hh_ten, HH_GIANHAP * HH_Soton from tblHanghoa where HH_Soton>@soluong
return;
END
GO
select * from dbo.fnDanhsachHangTonVaGiatri (10)