Error: an expression of non-boolean type specified in a context where a condition is expected, near ',' ; Using Cascading Parameters
Error: an expression of non-boolean type specified in a context where a condition is expected, near ',' ; Using Cascading Parameters
我正在尝试使用级联参数在 SSRS 报表生成器中过滤此数据透视表 table。
这是主要的数据集查询:
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 报表生成器中 运行 时,我一直收到此错误:
An expression of non-boolean type specified in a context where a condition is expected, near ','
肯定是和主查询或者参数数据集查询中的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]
我如何在第二个查询而不是第一个查询中使用级联参数成功运行生成报告?
我弄清楚我做错了什么。我的数据集属性未在 Report Builder 中正确配置。
配置错误
数据集属性;参数;参数名称:SVC_AGY 参数值:[@SVC_AGY]
更正配置
数据集属性;参数;参数名称:@SVC_AGY 参数值:[@SVC_AGY]
确保您的参数名称与参数值匹配,包括 @ 符号。
我正在尝试使用级联参数在 SSRS 报表生成器中过滤此数据透视表 table。
这是主要的数据集查询:
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 报表生成器中 运行 时,我一直收到此错误:
An expression of non-boolean type specified in a context where a condition is expected, near ','
肯定是和主查询或者参数数据集查询中的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]
我如何在第二个查询而不是第一个查询中使用级联参数成功运行生成报告?
我弄清楚我做错了什么。我的数据集属性未在 Report Builder 中正确配置。
配置错误
数据集属性;参数;参数名称:SVC_AGY 参数值:[@SVC_AGY]
更正配置
数据集属性;参数;参数名称:@SVC_AGY 参数值:[@SVC_AGY]
确保您的参数名称与参数值匹配,包括 @ 符号。