Сделана 8 лаба
This commit is contained in:
11
Lab8/Task1.sql
Normal file
11
Lab8/Task1.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
USE AdventureWorks;
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE Sales.GetDiscounts
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
|
||||||
|
FROM Sales.SpecialOffer;
|
||||||
|
END
|
||||||
|
|
||||||
|
EXEC Sales.GetDiscounts;
|
||||||
13
Lab8/Task2.sql
Normal file
13
Lab8/Task2.sql
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
USE AdventureWorks;
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE Sales.GetDiscountsForCategory
|
||||||
|
@Category nvarchar(50)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
|
||||||
|
FROM Sales.SpecialOffer
|
||||||
|
WHERE Category IN (@Category);
|
||||||
|
END
|
||||||
|
|
||||||
|
EXEC Sales.GetDiscountsForCategory 'Reseller'
|
||||||
19
Lab8/Task3.sql
Normal file
19
Lab8/Task3.sql
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
USE AdventureWorks;
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE Sales.GetDiscountsForCategoryAndDate
|
||||||
|
@Category nvarchar(50) = NULL,
|
||||||
|
@DateToCheck datetime = NULL
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
IF @DateToCheck IS NULL SET @DateToCheck = GETDATE();
|
||||||
|
SELECT Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty
|
||||||
|
FROM Sales.SpecialOffer
|
||||||
|
WHERE Category IN (@Category) AND (@DateToCheck BETWEEN StartDate AND EndDate);
|
||||||
|
END
|
||||||
|
|
||||||
|
EXEC Sales.GetDiscountsForCategoryAndDate 'Reseller'
|
||||||
|
|
||||||
|
DECLARE @DateToCheck datetime
|
||||||
|
SET @DateToCheck = DATEADD(MONTH, 1, GETDATE())
|
||||||
|
EXEC Sales.GetDiscountsForCategoryAndDate 'Reseller', @DateToCheck
|
||||||
63
Lab8/Task4.sql
Normal file
63
Lab8/Task4.sql
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
USE AdventureWorks;
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE PROCEDURE Sales.AddDiscount
|
||||||
|
@Description nvarchar(255),
|
||||||
|
@DiscountPct smallmoney,
|
||||||
|
@Type nvarchar(50),
|
||||||
|
@Category nvarchar(50),
|
||||||
|
@StartDate Datetime,
|
||||||
|
@EndDate Datetime,
|
||||||
|
@MinQty int,
|
||||||
|
@MaxQty int,
|
||||||
|
@NewProductID int
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
INSERT INTO Sales.SpecialOffer
|
||||||
|
(SpecialOfferID, Description, DiscountPct, Type, Category, StartDate, EndDate, MinQty, MaxQty)
|
||||||
|
VALUES (@NewProductID, @Description, @DiscountPct, @Type, @Category, @StartDate, @EndDate, @MinQty, @MaxQty)
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
INSERT INTO dbo.ErrorLog
|
||||||
|
VALUES (GETDATE(), USER_NAME(), ERROR_NUMBER(), ERROR_SEVERITY(), ERROR_STATE(), ERROR_PROCEDURE(), ERROR_LINE(), ERROR_MESSAGE())
|
||||||
|
END CATCH
|
||||||
|
END;
|
||||||
|
|
||||||
|
GO
|
||||||
|
DECLARE @StartDate datetime, @EndDate datetime
|
||||||
|
SET @StartDate = GetDate()
|
||||||
|
SET @EndDate = DateAdd(month, 1, @StartDate)
|
||||||
|
DECLARE @NewId int
|
||||||
|
SET @NewId = 25;
|
||||||
|
EXEC Sales.AddDiscount
|
||||||
|
'Half price off everything',
|
||||||
|
0.5,
|
||||||
|
'Seasonal Discount',
|
||||||
|
'Customer',
|
||||||
|
@StartDate,
|
||||||
|
@EndDate,
|
||||||
|
0,
|
||||||
|
20,
|
||||||
|
@NewId OUTPUT;
|
||||||
|
SELECT @NewID;
|
||||||
|
|
||||||
|
DECLARE @StartDate datetime, @EndDate datetime
|
||||||
|
SET @StartDate = GetDate()
|
||||||
|
SET @EndDate = DateAdd(month, 1, @StartDate)
|
||||||
|
DECLARE @NewId int, @ReturnValue int
|
||||||
|
|
||||||
|
EXEC @ReturnValue = Sales.AddDiscount
|
||||||
|
'Half price off everything',
|
||||||
|
-0.5, -- UNACCEPTABLE VALUE
|
||||||
|
'Seasonal Discount',
|
||||||
|
'Customer',
|
||||||
|
@StartDate,
|
||||||
|
@EndDate,
|
||||||
|
0,
|
||||||
|
20,
|
||||||
|
@NewID OUTPUT
|
||||||
|
IF (@ReturnValue = 0)
|
||||||
|
SELECT @NewID
|
||||||
|
ELSE
|
||||||
|
SELECT TOP 1 * FROM dbo.ErrorLog ORDER BY ErrorTime DESC
|
||||||
Reference in New Issue
Block a user