Я использую SSRS для создания набора данных из запроса, имеющего столбец в AS400 с номером месяца, который я получаю на основе условия. Я могу получить номер месяца. Но когда я пытаюсь получить название месяца, SSRS не принимает запрос. Однако, если я запускаю тот же запрос на AS400, запрос успешно выполняется.
Чтобы проверить свой запрос, я запустил его в AS400, используя ИМЯ МЕСЯЦА (МЕСЯЦ), он работает успешно, однако SSRS не принимает тот же запрос как правильный. Ниже приведен мой запрос.
SELECT DISTINCT SLMONTH, MONTHNAME(SLMONTH) AS Expr1
FROM VEHICLE.VHTSALSUM
WHERE (SLMGCD = ?) AND (SLMODLCD = ?) AND (SLMODLYR = ?) AND (SLYEAR = ?)





Вместо того, чтобы делать это на сервере, вы можете просто вернуть номер месяца в SSRS и использовать выражение для преобразования его в название месяца.
Выражение будет просто
=MonthName(Fields!SLMONTH.Value)
Предполагается, что AS/400 возвращает номера месяцев от 1 до 12.
Лично я считаю, что это лучший подход, так как это означает, что у вас есть номер месяца для сортировки. Обычно лучше делать презентацию в самом отчете.
Изменить на основе отзывов: Чтобы сделать это для использования в параметре..
=MONTHNAME(Fields!MonthID.Value).Я добавил еще одну опцию, которая будет работать для параметров
Значение из запроса фактически заполняет параметр, который будет выпадающим в моем отчете, поэтому на вкладке доступных значений нет символа f (x), чтобы написать для него выражение.