Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @order_date datetime, @number_of_days INT, @order_id INT, @ratio FLOAT, @min_sales int , @min_days int, @category_id int
- DECLARE by_category cursor fast_forward FOR
- SELECT OrderID, OrderDate FROM Orders
- ORDER BY OrderDate ASC
- OPEN by_category
- fetch NEXT FROM by_category INTO @order_id, @order_date
- while @@fetch_status = 0
- BEGIN
- DECLARE @is_true tinyint, @actual_date datetime
- SET @is_true = 1
- SET @number_of_days = 14
- SET @ratio = 0.7
- set @min_sales=5
- set @min_days=14
- set @category_id=1
- while @is_true = 1
- BEGIN
- set @actual_date = DATEADD(DAY, @number_of_days, @order_date)
- declare @all_items INT = 0, @beverage_items INT = 0
- SELECT @all_items = COUNT(*) FROM Orders WHERE OrderDate >= @order_date AND OrderDate <= @actual_date
- SELECT @beverage_items = COUNT(Orders.OrderID) FROM Orders
- WHERE OrderDate >= @order_date AND
- OrderDate <= @actual_date AND
- Orders.OrderID IN (SELECT [ORDER Details].OrderID FROM [ORDER Details]
- JOIN Products P2 ON [ORDER Details].ProductID = P2.ProductID
- JOIN Categories C2 ON P2.CategoryID = C2.CategoryID
- WHERE C2.CategoryID = @category_id)
- IF @all_items >= @min_sales AND CAST(@beverage_items AS FLOAT) / CAST(@all_items AS FLOAT) >= @ratio
- BEGIN
- SET @number_of_days += 1
- END
- ELSE
- BEGIN
- SET @is_true = 0
- IF @number_of_days > @min_days
- print('Időszak eleje: ' + CAST(@order_date AS VARCHAR(255)) + ', vége: ' +
- CAST(@actual_date AS VARCHAR(255)) + ' napok száma: ' +
- CAST(DATEDIFF(DAY, @order_date, @actual_date) AS VARCHAR(255)) + ', rendelések száma: ' +
- CAST(@all_items AS VARCHAR(255)))
- END
- END
- fetch NEXT FROM by_category INTO @order_id, @order_date
- END
- close by_category
- deallocate by_category
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement