Моя структура таблицы выглядит следующим образом:
GLPERIOD
periodid char
strtdate datetime
closdate datetime
fiscalyr char
GLPOST
postdate datetime
account char
amount money
Учитывая это, следующая хранимая процедура, параметры которой определены как идентичные типу, который требуется столбцам таблицы, при вызове ничего не возвращает.
PROCEDURE MonthlyActual
@P2 CHAR, @P3 CHAR, @P4 CHAR
SELECT SUM(amount)
FROM GLPOST
WHERE account = @P2
AND postdate BETWEEN (SELECT strtdate
FROM GLPERIOD
WHERE periodid = @P3 AND fiscalyr = @P4) AND
(SELECT closedate
FROM GLPERIOD
WHERE periodid = @P3 AND fiscalyr = @P4)
GROUP BY
account
Я пытаюсь назвать это так:
MonthlyActual @P2 = '51080-000', @P3 = 1, @P4 = 2018
MonthlyActual @P2 = '51080-000', @P3 = '1', @P4 = '2018'
... и ничего не получите. Тем не менее, если я жестко закодирую эти значения, код работает отлично.
Что я делаю не так?
Я использую SQL Server Management Studio на Windows Server.