我正在SSRS中编写一份报告,该报告需要使用搜索参数来过滤报告。该参数设置为默认允许空值,这应该让报告正常运行。
报告运行,但是在我将某些内容添加到搜索参数中之前不会返回任何内容。
是否可以使用IIF表达式来表示如果参数为null,则将报告正常运行?
以下是我用于在SSRS中生成数据集的查询。
CREATE TABLE #StartDateTable(
stSecurityType varchar(10) NOT NULL,
stSecuritySymbol varchar(50) NOT NULL,
stPrice float NOT NULL,
stSecurityID int NOT NULL,
stPriceDate date NOT NULL
)
INSERT INTO #StartDateTable (stSecurityType, stSecuritySymbol, stPrice, stSecurityID, stPriceDate )
SELECT DISTINCT
Instruments.SecurityType, Instruments.SecuritySymbol,
InstrumentPrice.Price, InstrumentPrice.SecurityID, InstrumentPrice.PriceDate
FROM
InstrumentPrice
JOIN
Instruments ON Instruments.ID = InstrumentPrice.SecurityID
WHERE
InstrumentPrice.PriceDate = @StartDate;
CREATE TABLE #EndDateTable
(
etSecurityType varchar(10) NOT NULL,
etSecuritySymbol varchar(50) NOT NULL,
etPrice float NOT NULL,
etSecurityID int NOT NULL,
etPriceDate date NOT NULL
)
INSERT INTO #EndDateTable (etSecurityType, etSecuritySymbol, etPrice, etSecurityID, etPriceDate)
SELECT DISTINCT
Instruments.SecurityType, Instruments.SecuritySymbol,
InstrumentPrice.Price, InstrumentPrice.SecurityID,
InstrumentPrice.PriceDate
FROM
InstrumentPrice
JOIN
Instruments ON Instruments.ID = InstrumentPrice.SecurityID
WHERE
InstrumentPrice.PriceDate = @EndDate;
SELECT *
FROM #StartDateTable
LEFT JOIN #EndDateTable ON #EndDateTable.etSecurityID = #StartDateTable.stSecurityID
我使用LIKE将搜索参数设置为SSRS中数据集的过滤器,因为我希望它是通配符。
答案 0 :(得分:3)
有两种方法可以做到这一点。在数据集中使用where子句或以下过滤使用组过滤器。
从组属性中使用和使用表达式..
示例=IIF(Isnothing(Parameters!Param1.Value) = true, 0, Parameters!Param1.Value)
和=IIF(Isnothing(Parameters!Param1.Value) = true, 999999, Parameters!Param1.Value)