Согласно вашему заявлению "Я хочу создать процедуру для получения данных [ПРОДАЖ] для введенной даты и данных за предыдущий год [ПРОДАЖ Y -]" это говорит мне, что если выукажите дату 20191103
, для которой вы хотите получить данные о продажах для 20191103
и 20180101
до 20181231
включительно.
Логика кажется странной, но, похоже, вам просто нужно это в вашем WHERE
:
WHERE GL_DATEPIECE = @DateParam
OR (GL_DATEPIECE >= DATEADD(YEAR, DATEDIFF(YEAR, 0, @DataParam)-1,0)
AND GL_DATEPIECE < DATEADD(YEAR, DATEDIFF(YEAR, 0, @DataParam),0));
Предполагая, что GL_DATEPIECE
является date
, а не datetime
.
На основе новой информации:
WHERE (GL_DATEPIECE >= @StartDate AND GL_DATEPIECE <= @EndDate)
OR (GL_DATEPIECE >= DATEADD(YEAR, -1, @StartDate) AND GL_DATEPIECE <= DATEADD(YEAR, -1, @EndDate))
Снова, предполагает, что GL_DATEPIECE
является date
, а не datetime
.