-1

我正在嘗試創建SSRS報告,我將在其中輸入CombinedAccountNumber - 它充當報告中的輸入參數,沒有默認值/可用值。我在報告中提供了數據類型INT,但在數據類型中它是nvarchar。SSRS-報告參數對於其類型輸入參數無效,沒有默認值/可用值

當我運行報告時,它會拋出錯誤:爲報告參數CombinedAccountNumber提供的值對其類型無效。 任何人都可以請幫助我出錯了,我需要修復查詢或在SSRS報告中添加參數時?

這裏是我使用的數據集部分查詢: -

SELECT 
     [QAACTO] 
     ,[QAACTA] 
     ,[QACKDG] 
     ,substring([QACPHA],2,4) as 'Alternate Phone Area' 
     ,substring([QACPHP],2,4) as 'Alt Phone Prefix' 
     ,[QACPHN] as 'Alt Phone Number' 
     FROM [MOCK124].[dbo].[FPQA] 
     where 
     ((REPLACE(LTRIM(REPLACE([QAACTO],'0', ' ')),' ', '0')) 
     + 
     (REPLACE(LTRIM(REPLACE([QAACTA],'0',' ')),' ','0')) 
     + 
     ([QACKDG])) = @CombinedAccountNumber 

回答

0

WHERE子句正在轉換的字段的字符串。你不是合併領域而不是添加它們嗎?

where 
     ((REPLACE(LTRIM(REPLACE([QAACTO],'0', ' ')),' ', '0')) 
     + 
     (REPLACE(LTRIM(REPLACE([QAACTA],'0',' ')),' ','0')) 
     + 
     ([QACKDG])) = @CombinedAccountNumber 

將其轉換或設置爲TEXT。我認爲文本參數會更好,因爲您的數字可能會因INT太大而變得過大。

+0

將參數設置爲TEXT將引發錯誤:數據集的查詢執行失敗。 nvarchar附近的語法不正確。必須聲明標量變量「@CombinedAccountNumber」請注意,所有字段都將保存爲數據庫中的nvarchar。請讓我知道我應該做什麼? –

+0

哪裏有nVarChar?你的參數是SQL嗎?我認爲這是在SSRS中,但你已經設置爲使用INTEGER而不是文本。 –

+0

我的意思是表(DB)中的所有字段都保存爲nvarchar,但報告參數@CombinedAccountNumber被設置爲INT。我試着把它改成TEXT,都是拋出錯誤。我想這可能是因爲表中的nvarchar字段和報表參數數據類型不匹配?還有什麼我應該嘗試? TIA –

0

該問題已通過使用公用表表達式使用相同的查詢解決,並解決了問題,但是,TEXT格式的報表參數是。 非常感謝您的輸入:)