Ошибка: выражение не булева типа, указанное в контексте, где ожидается условие, рядом с ',';Использование каскадных параметров - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь использовать каскадные параметры для фильтрации этой сводной таблицы в построителе отчетов SSRS.

Это основной запрос к набору данных:

SELECT * FROM(
SELECT *,
    CASE WHEN PLN=PLN THEN '01. GROSS PREMIUM'
        ELSE NULL
    END AS PREMIUM
FROM MYI
PIVOT (SUM(GROSS_PREMIUM_1) FOR PERIOD_TYPE IN([MTD],[YTD],[ITD])) pvt

UNION ALL

SELECT *,
    CASE WHEN PLN=PLN THEN '02. REFUND'
        ELSE NULL
    END AS PREMIUM
FROM MYI
PIVOT (SUM(REFUND_2) FOR PERIOD_TYPE IN([MTD],[YTD],[ITD])) pvt
)A

WHERE ACC_PERIOD = @ACC_PERIOD
    AND REINSURER IN (@REINSURER)
    AND INSURER IN (@INSURER) 
    AND PLN IN (@PLN) 
    AND SVC_AGY IN (@SVC_AGY)

Эти параметры в предложении WHERE имеютих собственный набор данных и каскадно сверху вниз. Вот запрос для окончательного параметра в качестве примера:

SELECT DISTINCT [fasren_servicingagency]
FROM [FAS_ReinsuranceNumber]
WHERE ACC_PERIOD = @ACC_PERIOD
    AND REINSURER IN (@REINSURER)
    AND INSURER IN (@INSURER)
    AND PLN IN (@PLN)
ORDER BY SVC_AGY

Запрос работает в SSMS нормально, но я продолжаю получать эту ошибку, когда запускаю его в построителе отчетов SSRS:

Выражение не-логического типа, указанное в контексте, где ожидается условие, рядом с ',' *

. Оно должно иметь отношение к предложению WHERE в основном запросе илизапросы к набору данных параметров. Я видел много сообщений об этой ошибке, но я не смог найти решение, которое помогло бы решить мою проблему. Любые идеи?

ПРИМЕЧАНИЕ: все параметры являются символьными полями, без целых чисел, без столбцов даты.

РЕДАКТИРОВАТЬ: Есть еще один запрос, с которым я был успешно;

SELECT [acctyymm],
    [retrosummary],
    [retroagent],
    [coveragedivision],
    [policyinsurer],
    SUM([NetDue]) AS NET_DUE,
    SUM([ActualPayable]) AS PAYABLE
FROM [dbo].[RetroNumberGAAP]
WHERE [acctyymm] IN (@ACC_PERIOD)
    AND [retrosummary] IN (@RETSUM)
    AND [retroagent] IN (@RETAGT)
    AND [coveragedivision] IN (@PLN)
    AND [policyinsurer] IN (@INSURER)
    AND POWER([fasrtng_NetDue],2)+POWER([ActualPayable],2)<>0
GROUP BY [acctyymm],
    [retrosummary],
    [retroagent],
    [coveragedivision],
    [policyinsurer]

Как мне успешно запустить отчет с каскадными параметрами во втором запросе, а не в первом запросе?

1 Ответ

0 голосов
/ 11 ноября 2019

Я понял, что я сделал не так. Свойства моего набора данных были неправильно настроены в построителе отчетов.

НЕПРАВИЛЬНАЯ КОНФИГУРАЦИЯ

Свойства набора данных;Параметры;имя параметра: SVC_AGY Значение параметра: [@SVC_AGY]

ИСПРАВЛЕННАЯ КОНФИГУРАЦИЯ

Свойства набора данных;Параметры;имя параметра: @SVC_AGY Значение параметра: [@SVC_AGY]

Убедитесь, что имена ваших параметров соответствуют значениям параметров, включая символ @.

...