Получить значение текущей и предыдущей даты в SQL - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть 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
..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...