2013-10-15 24 views
1

在SSRS水晶盒到SSRS switch語句

我怎樣才能重新寫從Crystal Reports下式
select {spAR6100b_allcompanies;1.artyp} 
    case 'BCS','CIG','HUM','INA','INS','MNG','PHC','SEC','SPC','TRI','UHC','WMD' : 'Primary' 
    case 'COI','ICO','INP','MCO','COI' : 'Secondary' 
default: '' 

回答

1

SSRS表達式一般不會很好地工作IN比較。

有幾個選項。

使用Switch和一組鏈接Or聲明:

=Switch(Fields!arTyp.Value = "BCS" or Fields!arTyp.Value = "BCS" or Fields!arTyp.Value = "HUM", "Primary" 
, Fields!arTyp.Value = "COI" or Fields!arTyp.Value = "ICO", "Secondary" 
, True, "") 

我只包括一些您的情況,你可以看到它已經長 - 你需要儘可能多的價值添加爲你需要。

隨着字符串相匹配,您可以通過檢查該字段值是匹配值的字符串簡化這個有點:

=Switch(InStr(",BCS,CIG,HUM,", "," & Fields!arTyp.Value & ",") > 0, "Primary" 
, InStr(",COI,ICO,INP,", "," & Fields!arTyp.Value & ",") > 0, "Secondary" 
, True, "") 

我們在包裝逗號一切努力防止對部分比賽誤報。再次,將所有必需的值添加到匹配值的字符串列表中。

最後,您可以使用自定義代碼進行比較,並將比較結果移至報告中嵌入的VB.NET類型函數。