Sql-Server

在選擇一個時將 SSRS 中的其他日期參數歸零

  • December 2, 2015

我設置了多個日期作為輸入參數,在 SQL 查詢中,我設置了 WHERE 子句,例如:

WHERE datecol1 >= @date1 OR (@date1 IS NULL)

這樣就可以將日期作為可選參數處理。我有三個日期參數。我想製作報告,如果使用者選擇一個日期,其他兩個應該被取消,就像 null 應該被選中一樣。

另外,現在,我在日期參數的預設值部分中有此設置,我希望依賴於其他日期參數。

在此處輸入圖像描述

我在這裡做錯了什麼?因為這仍然行不通。

在螢幕截圖中,您正在設置預設值的表達式,這只會更改報告初始顯示時的值。這不會阻止使用者更改這些值,因此您可以輕鬆獲取渲染請求,其中所有參數都填充了預設值以外的參數。

我建議讓您的報告使用者清楚地了解這些日期發生了什麼,不要在幕後使用他們的參數。為此,請在每個參數集中創建一個選項(您可以執行 UNION 之類的操作並對標籤和鍵進行硬編碼),以確保報表執行不僅符合您的預期,而且讓任何其他開發人員或使用者都清楚這一點。

使用者可能會選擇以下內容:

Param1 - "Not Used"
Param2 - 20151202
Param3 - "Not Used"

您可以使用級聯參數強制此行為。但是,您可能會遇到更新級聯參數的問題

像這樣設置:

@參數1

SELECT -1 As Key, 'Not Used' As Label
UNION
SELECT Key, Label FROM DATES

@參數2

SELECT -1 As Key, 'Not Used' As Label
UNION
SELECT Key, Label FROM DATES
WHERE -1 = @Param1

@參數3

SELECT -1 As Key, 'Not Used' As Label
UNION
SELECT Key, Label FROM DATES
WHERE -1 = @Param1
AND -1 = @Param2

這確保您只能在 param1 選擇除“未使用”之外的任何內容時為 param2 選擇“未使用”選項。您仍然可以將預設值設置為不用於所有這些。

引用自:https://dba.stackexchange.com/questions/122718