用于评估SSRS字段

时间:2016-10-18 15:16:12

标签: sql vb.net function reporting-services ssrs-2012

我的任务是在DEA和NPI号码上进行SQL合并以返回可用值,不存在DEA和NPI值都可用于Dr.的情况这是我目前在我使用的脚本:

coalesce(nullif(convert(varchar,NationalProviderIdentifier),'0'), DEANumber) as 'DrID' 

可以将未知值定义为具有以下值: "未知" 0 0000000000 "空白"

我需要在Dr. id值上悬停,该值可以说是" DEA Number"或者" NPI号码"取决于显示的内容。我已经为ToolTip表达式编写了以下VB代码,它工作正常:

=IIF(Fields!DrID.Value = "Unknown" or Fields!DrID.Value = "" or Fields!DrID.Value = "0000000000", "DEA/NPI Unavailable", 
IIF(Len(Fields!DrID.Value) > 9, "NPI", "DEA"))

有些情况下,DEA和NPI编号都是未知的,这就是我在VB的第一个IIF部分中检查的内容。第二个IFF声明是确定返回的值是NPI(10位长)还是DEA(9位长)数。

我被建议使用SQL函数使我的VB不那么复杂。我没有编写很多函数,我不知道如何继续。我假设我不会在Visual Studio中引用该函数,而是在主数据集中的某处检索DrID数据字段?

1 个答案:

答案 0 :(得分:2)

那么简单的方法是在SQL查询中添加一个额外的列,就像这样(假设NationalProviderIdentifier是一个INT而且都不允许NULL):

CASE WHEN NationalProviderIdentifier <> 0 THEN 'NPI'
     WHEN DEANumber IN('Unknown','','0000000000') THEN 'N/A'
     ELSE 'DEA' END  as 'DrIdSrc'