Share code bài thực hành ngày 05/03/14 lớp Hệ quản trị CSDL - Thầy Lê Hữu Dũng
( Lớp AAW6022013.2, AAW6022013.4, AAW7052013.HL)
Sử dụng Cursor và biến kiểu Table để giải quyết bài toán:
- Tạo store procedure, nhập vào @CategoryID
- Hiện ra danh sách các sản phẩm có CategoryID truyền vào và số lượng đã bán của mỗi sản phẩm
- Áp dụng với database NorthWind
Code:
CREATE PROC spProductSaleAmount
@CategoryID INT
AS
DECLARE @tblProducts TABLE (ProductID INT, ProductName NVARCHAR(40), SaleAmount SMALLINT)
DECLARE ProductCur CURSOR
FOR
SELECT Products.ProductID, Products.ProductName FROM Products
WHERE Products.CategoryID = @CategoryID
OPEN
ProductCur
DECLARE @amount SMALLINT
DECLARE @productID INT, @productName NVARCHAR(40)
FETCH NEXT
FROM ProductCur
INTO @productID, @productName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @amount = SUM([Order Details].Quantity) FROM [Order Details]
WHERE [Order Details].ProductID = @productID
INSERT INTO @tblProducts
VALUES(@productID, @productName, @amount)
FETCH NEXT
FROM ProductCur
INTO @productID, @productName
END
CLOSE ProductCur
DEALLOCATE ProductCur
SELECT * FROM @tblProducts