报表生成器(SSRS)SWITCH语句空白值

问题描述 投票:0回答:1

对于我要生成的报告,有些字段取决于用户选择向其策略中添加其他人员(在数据集中命名为Dependent1,Dependent2等)。

我们需要确定这些受抚养人是成年人还是儿童,以便进行报告。这将通过DOB和DateDiff完成,据我了解

[当前,如果有数据,我可以使报告显示“ ADULT”或“ CHILD”,但是,如果没有任何数据,我不能返回“”值,则默认为“ ADULT”。

我正在使用:= Switch(DateDiff(“ yyyy”,Fields!Dependant1DoB.Value,Fields!Policy_Start_Date.Value)<18,“ CHILD”,DateDiff(“ yyyy”,Fields!Dependant1DoB.Value,Fields!Policy_Start_Date.Value)> = 18, “ ADULT”,DateDiff(“ yyyy”,Fields!Dependant1DoB.Value,Fields!Policy_Start_Date.Value),“”)

我还创建了另一列,该列使用Fields!Dependant1DoB.Value和Fields!Policy_Start_Date.Value之间的DateDiff来显示年数。这有效并返回一个数字。但是由于某种未知原因,在没有数据的情况下,它仍然会返回“ 2019”,这可能会影响它?我尝试将其包含在Switch语句中(DateDiff(“ yyyy”,Fields!Dependant1DoB.Value,Fields!Policy_Start_Date.Value)= 2019,“”),但这仍然无法正常工作。

有人请帮忙,因为这让我感到生气!

sql reporting-services switch-statement datediff
1个回答
0
投票

您首先需要检查任何内容,然后再应用切换功能,如下所示:

= IIF(IsNothing(Fields!Dependent1DoB.Value),“”,开关(DateDiff(“ yyyy”,Fields!Dependent1DoB.Value,Fields!Policy_Start_Date.Value)<18,“ CHILD”,DateDiff(“ yyyy”,Fields!Dependent1DoB.Value,Fields!Policy_Start_Date.Value)> = 18,“ ADULT”))

© www.soinside.com 2019 - 2024. All rights reserved.