[英]display passed parameter in an ssrs report even if there are no associated records in the database
[英]SSRS Parameter doesn't display even though the query works
我有一個查詢來填充報告參數:
select distinct [Source No_] from _report_sales_master
where [Industry] = @Industries
and [posting date] >= dateadd(year,datediff(year,'01/06/2000',@year)-1,'01/06/2000')
and [posting date] < dateadd(year,datediff(year,'01/06/2000',@year),'01/06/2000')
order by [Source No_]
該查詢產生一個列表,我使用該列表來填充多值報表參數。
當我運行查詢時,它將生成正確的結果。
運行報表時,無論我選擇哪個@year或@industries,“ Source No_”參數都保持為空
當我從查詢中刪除“發布日期”子句時,參數列表將填充並正常工作。
我想念什么?
嘗試將硬編碼的日期(字符串文字)格式為'yyyy-mm-dd'
。 我發現以日期格式(即dd / mm / yyyy或mm / dd / yyyy)放置SSRS時,可能會混淆哪個月份和哪個日期。
我已經在數據庫和SSRS級別上進行了各種設置來進行日期本地化,並且發現您格式的任何日期字符串都可能導致問題(我不知道具體原因)。
當您使用字符串文字時,將執行隱式轉換以將其解析為以下之一: time, date, smalldatetime, datetime, datetime2
或datetimeoffset
值。
防止日期格式錯誤的另一種方法是用顯式強制轉換替換字符串文字,例如:
CONVERT(datetime, '2012-06-01', 101)
假設月份=六月 CONVERT(datetime, '2012-01-06', 101)
假設月份=一月 我唯一想檢查的另一件事是,報表中的參數設置為[Source No_]
列的正確數據類型。
將其放入您的數據庫中,然后玩:
DECLARE @year DATETIME
SELECT @year = TypeDateTimeInputHere
SELECT dateadd(year,datediff(year,'01/06/2000',@year)-1,'01/06/2000') [GT posting date]
,dateadd(year,datediff(year,'01/06/2000',@year),'01/06/2000') [LT posting date]
我無法說出您正在嘗試使用大於或等於(GT)以及小於(LT)邏輯,但是我不認為它可以滿足您的期望或期望。 每次測試時,除非我強制[發布日期]小於2000年6月6日,否則我將獲得相同的結果。
顯然,將“ TypeDateTimeInputHere”替換為您知道的或預計在[發布日期]中的示例值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.