Я создаю тикеты, открытые по сравнению с разрешенными за неделю, которые сообщают о количестве дней, предоставленных пользователем.
Моя проблема в том, что powergadgets (используемый мной гаджет) выдает ошибку при попытке запустить приведенный ниже код:
Имя переменной '@NoOfDays' уже объявлено. Имена переменных должны быть уникальными в пакете запроса или хранимой процедуре.
Как видите, мне нужно использовать эту переменную дважды. Если я добавлю Declare @NoOfDays int
в начале, powergadgets просто вылетает. Я довольно новичок в SQL, но в прошлом использование дважды передаваемой пользователем переменной никогда не вызывало проблем. Что я могу сделать, чтобы решить проблему?
SELECT
a.resolved, b.opened,
a.weekClosed AS week,
a.yearClosed AS year,
CAST(a.yearClosed as varchar(5)) + ', ' + CAST(a.weekClosed as varchar(5)) AS period
FROM
(SELECT
TOP (100) PERCENT COUNT(DISTINCT TicketNbr) AS resolved,
{ fn WEEK(date_closed) } AS weekClosed,
{ fn YEAR(date_closed) } AS yearClosed
FROM v_rpt_Service
WHERE
(date_closed >= DateAdd(Day, DateDiff(Day, 0, GetDate()) - @NoOfDays, 0))
GROUP BY
{ fn WEEK(date_closed) }, { fn YEAR(date_closed) }
) AS a
LEFT OUTER JOIN
(SELECT TOP (100) PERCENT
COUNT(DISTINCT TicketNbr) AS opened,
{ fn WEEK(date_entered) } AS weekEntered,
{ fn YEAR(date_entered) } AS yearEntered
FROM
v_rpt_Service AS v_rpt_Service_1
WHERE
(date_entered > = DateAdd(Day, DateDiff(Day, 0, GetDate()) - @NoOfDays, 0))
GROUP BY
{ fn WEEK(date_entered) }, { fn YEAR(date_entered) }
) AS b ON a.weekClosed = b.weekEntered AND a.yearClosed = b.yearEntered
ORDER BY
year, week