У меня есть 2 таблицы, Store и LigneProduct:
-------------- ------------
LigneProduct Store
-------------- ------------
L_Date S_CodeStore
L_CodeStore S_Libelle
L_Rayon
L_Sales
Я создам процедуру с датой начала и окончания, чтобы получить общий объем продаж по районам за введенную дату и дату -1 (годы -1)
Alter [Sales] @StartDate nvarchar(30),@EndDate nvarchar(30)
AS
DECLARE @StartDatePreviousYear DATE = DATEADD(YEAR, -1, @StartDate)
DECLARE @EndDatePreviousYear DATE = DATEADD(YEAR, -1, @EndDate)
BEGIN
SELECT
[STORE] = ET1.S_LIBELLE,
[RAYON] = L_Rayon,
[SALES] = CONVERT(DECIMAL(15,0),SUM(CASE WHEN
[L_Date ] BETWEEN @StartDate AND @EndDate THEN ISNULL([L_Sales], 0) ELSE 0 END)),
[SALES Y-1]= CONVERT(DECIMAL(15,0),SUM(CASE WHEN [L_Date ] BETWEEN @StartDatePreviousYear AND @EndDatePreviousYear THEN ISNULL([L_Sales], 0) ELSE 0 END)) AS [Sales Y-1]
FROM LigneProduct
LEFT OUTER JOIN Store ET1 ON L_CodeStore =ET1.S_CodeStore
WHERE
L_CodeStore NOT IN ('001','H10','B30')
GROUP BY
ET1.S_LIBELLE, L_Rayon
END
GO
EXEC [dbo].[Sales] @StartDate = '2019-11-01' ,@EndDate = '2019-11-01'
В моем запросе что-то не так, что я не знаю. Запрос выполняется без сообщения об ошибке, но результат не более чем через 10 минут ..
Ожидаемый результат:
----- ------ ----- ----------
Store Rayon Sales Sales Y-1
----- ----- ------ ----------
S01 R01 1528 1650
S01 R02 550 780
S02 R02 658 666
S02 R03 654 80
..