1. Trang chủ
  2. » Công Nghệ Thông Tin

Code SQL Server Procedure

3 1,4K 41

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 13,47 KB

Nội dung

1)Viết một thủ tục tính tổng tiền thu (TotalDue) của mỗi khách hàng trong một tháng bất kỳ của một năm bất kỳ (tham số tháng và năm) được nhập từ bàn phím, thông tin gồm: CustomerID, SumofTotalDue =Sum(TotalDue)create proc totalDue thang datetime,nam datetimeasbeginselect CustomerID,sumofTotal=SUM(SubTotal)from Sales.SalesOrderHeaderwhere MONTH(OrderDate)=thang and YEAR(OrderDate)=namgroup by CustomerIDendexec totalDue 7,20054)Tạo thủ tục đặt tên là TongThu có tham số vào là mã nhân viên, tham số đầu ra là tổng trị giá các hóa đơn nhân viên đó bán được. Sử dụng lệnh RETURN để trả về trạng thái thành công hay thất bại của thủ tục. create proc TongThu manv int,tonghd money outputasbeginselect tonghd=SUM(SubTotal)from Sales.SalesOrderHeaderwhere SalesPersonID=manvreturn 1if tonghd>0 return 1else return 0enddeclare tong moneyexec TongThu 282,tong outputprint convert(char(10),tong)10)Viết thủ tục Sp_Update_Product có tham số Productid dùng để tăng listprice lên 10% nếu sản phẩm này tồn tại, ngược lại hiện thông báo không có sản phẩm này. alter proc sp_up masp intasbeginif masp is not null beginselect ProductID,ListPrice=ListPrice+0.1ListPricefrom Production.Productwhere ProductID=maspendelse printKo co sp nayendexec sp_up null

Trang 1

1) Viết một thủ tục tính tổng tiền thu (TotalDue) của mỗi khách hàng trong một tháng bất kỳ

của một năm bất kỳ (tham số tháng và năm) được nhập từ bàn phím, thông tin gồm: CustomerID, SumofTotalDue =Sum(TotalDue)

create proc totalDue @thang datetime,@nam datetime

as

begin

select CustomerID,sumofTotal=SUM(SubTotal)

from Sales.SalesOrderHeader

where MONTH(OrderDate)=@thang and YEAR(OrderDate)=@nam

group by CustomerID

end

exec totalDue 7,2005

4) Tạo thủ tục đặt tên là TongThu có tham số vào là mã nhân viên, tham

số đầu

ra là tổng trị giá các hóa đơn nhân viên đó bán được Sử dụng lệnh RETURN để trả về trạng thái thành công hay thất bại của thủ tục

create proc TongThu @manv int,@tonghd money output

as

begin

select @tonghd=SUM(SubTotal)

from Sales.SalesOrderHeader

where SalesPersonID=@manv

return 1

if @tonghd>0 return 1

else return 0

end

declare @tong money

exec TongThu 282,@tong output

print convert(char(10),@tong)

10) Viết thủ tục Sp_Update_Product

có tham số Productid dùng để tăng listprice lên 10% nếu sản phẩm này tồn tại, ngược lại hiện thông báo không có sản phẩm này

alter proc sp_up @masp int

as

begin

if @masp is not null

begin

select ProductID,ListPrice=ListPrice+0.1*ListPrice from Production.Product

where ProductID=@masp end

else print'Ko co sp nay'

end

exec sp_up null

9) Viết thủ tục XoaHD, dùng để xóa 1 hóa đơn trong bảng

Sales.SalesOrderHeader khi biết SalesOrderID Lưu ý trước khi xóa mẫu tin trong

Sales.SalesOrderHeader thì phải xóa các mẫu tin của hoá đơn đó

trong Sales.SalesOrderDetail Nếu không xoá được hoá đơn thì cũng không được phép xóa Sales.SalesOrderDetail của hóa đơn đó

create proc xoahd @mahd int

as

Trang 2

if exists(select * from Sales.SalesOrderDetail where

SalesOrderID=@mahd)

begin

delete from Sales.SalesOrderDetail where SalesOrderID=@mahd delete from Sales.SalesOrderHeader where SalesOrderID=@mahd end

else

begin

delete from Sales.SalesOrderHeader where SalesOrderID=@mahd end

end

7) Tạo thủ tục hiển thị tên và số tiền mua của cửa hàng mua nhiều hàng nhất theo năm đã cho

create proc hienthi @nam datetime

as

begin

select top 1 name,SubTotal from Purchasing.PurchaseOrderHeader poh join Purchasing.Vendor v

on poh.VendorID=v.BusinessEntityID

where YEAR(OrderDate)=@nam

order by SubTotal DESC

end

exec hienthi 2007

Cursor

alter proc @inkhmuasp int

as

begin

declare @makh int,@ten nvarchar(50)

declare dskh cursor

for

select CustomerID,FirstName+' '+LastName as name

from Person.Person p join Sales.SalesOrderHeader soh on

p.BusinessEntityID=soh.CustomerID

open dskh

fetch next from dskh

into @makh,@ten

print 'Ma khach hang' +space(5)+'Ten'

while @@FETCH_STATUS=0

begin

print convert(char(5),@makh)+space(5)+convert(char(5),@ten)

begin

declare @masp int,@soluong int,@gia int declare dssp cursor

for select ProductID,OrderQty,UnitPrice from Sales.SalesOrderDetail sod join Sales.SalesOrderHeader soh on

sod.SalesOrderID=soh.SalesOrderID

where CustomerID=@makh open dssp

fetch next from dssp into @masp,@soluong,@gia print 'Ma SP'+space(5)+'So luong' +space(5)+'gia' while @@FETCH_STATUS=0

Trang 3

print convert(char(5),@masp) +space(5)+convert(char(5),@soluong)+space(5)+convert(char(5),@gia)

fetch next from dssp into @masp,@soluong,@gia end

end close dssp deallocate dssp fetch next from dskh into @makh,@ten end

close dskh deallocate dskh end

exec inkhmuasp

Ngày đăng: 06/12/2016, 12:03

TỪ KHÓA LIÊN QUAN

w