sql - 报告生成器 (SSRS) SWITCH 语句空白值
问题描述
对于我正在构建的报告,有些字段依赖于用户选择将其他人添加到他们的策略中(在数据集中命名为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, "")
) 中包含它,但这仍然不起作用。
有人请帮忙,因为这让我发疯!
解决方案
您需要先检查什么,然后应用 switch 功能,示例如下:
=IIF(IsNothing(Fields!Dependent1DoB.Value),"", Switch(DateDiff("yyyy",Fields!Dependent1DoB.Value,Fields!Policy_Start_Date.Value)<18, "CHILD", DateDiff("yyyy",Fields! Dependent1DoB.Value,Fields!Policy_Start_Date.Value)>=18, "ADULT" ) )