所以這有點令人困惑。我已經有一個存儲過程。我有5至6個參數的報告。我希望它以這樣的方式運行報表,以便您可以在下拉列表中選擇多個值並保持其可選(不選擇任何值)。其他的事情是我的參數值也有NULL值,我用NA代替它。我嘗試在參數屬性中使用默認值來進行某些選擇,而對於某些選擇它不適用。我仍然是SSRS工作的中間人。任何幫助將不勝感激。 謝謝選擇多值以及參數中具有空值的NULL值
回答
我假設你已經創建了一個函數,並在存儲過程中使用該函數來使該存儲過程成爲多值選擇。
在你的函數中無論哪個變量具有varchar或任何字符串數據類型,它們的大小都會像varchar(max)那樣變成MAX,並且在參數的存儲過程中也做同樣的事情。
此問題背後的原因:當您提供數據類型爲varchar(255)時,它只會取值爲255個字符,如果您的值字符超過了該限制,則會截斷超過該限制的數據。而你正在讓他們多選,所以你可能需要將它們作爲varchar(max)。
還將存儲過程中的參數大小設置爲Max。
注意:Varchar(Max)只是一個例子。您可以爲函數和存儲過程中使用的任何字符串數據類型提供最大值。
讓我知道,如果它的工作原理..
正確。我創建了一個函數,它將從參數中獲取值,並將它們分割爲逗號',',以便每個值都被分隔爲一個值。 – user7902506
但它不能解決我的問題。 – user7902506
你能分享你的功能和存儲過程的代碼嗎? –
ALTER PROCEDURE [dbo].[sp_PIMSelect_AJ_Test]
@network nvarchar(MAX),
[email protected] nvarchar(MAX),
[email protected] varchar(MAX),
[email protected] varchar(MAX),
[email protected] varchar(MAX),
[email protected] varchar (MAX),
@SLG nvarchar(MAX),
@county nvarchar(MAX),
@zip nvarchar(Max),
@specCode nvarchar(Max),
@affiltype nvarchar(Max),
@contract nvarchar(Max)
AS
SET NOCOUNT ON;
select * from (
select
distinct P1.Provid as PIMProviderID,
P.NetworkName,
--COALESCE(pa.affiltype, 'NA') as affiliationtype,
PP1.planprovid as ProviderPlanProvID,
p1.lastname as ProviderLastName,
p1.Firstname as ProviderFirstName,
P1.Profdesig as ProviderTitle,
p1.intprovtype as ProviderIntProvType,
COALESCE(NULLIF(P1.Provtype, ''), 'NA') as ProviderProvType,
XP1.Description as ProviderTypeDescription,
COALESCE(ps1.specialtycode, 'NA') as ProviderSpecialtyCode,
ps1.DirectorySpec as ProviderSpecialityDescription,
ps1.spectype as ProviderSpecType,
p1.CredType as ProviderCredType,
p1.phyaddress1 as ProviderPhyAddress1,
p1.phyaddress2 as ProviderPhyAddress2,
p1.phycity as ProviderPhyCity,
p1.phystate as ProviderPhyState,
p1.phyzipcode as ProviderPhyZipCode,
p1.phycounty as ProviderPhyCounty,
p1.address1 as ProviderMailingAddress1,
p1.address2 as ProviderMailingAddress2,
p1.city as ProviderMailingCity,
p1.state as ProviderMailingState,
p1.Zipcode as ProviderMailingZip,
p1.county as ProviderMailingCounty,
COALESCE(NULLIF(p1.TIN, ''),'0') as ProviderTIN,
COALESCE(NULLIF(p1.NPI, ''),'0') as ProviderNPI,
pa.Affiltype as AffilType,
p.provid as AffilPIMProviderID,
PP.planprovid as AffiliationPlanProvID,
p.Lastname as AffilLastName,
p.Firstname as AffilFirstName,
COALESCE(p.intprovtype, 'NA') as AffilIntProvType,
XP.Description as AffiliationTypeDescription,
ps.specialtycode as AffilSpecialtyCode,
ps.spectype as AffilSpecType,
ps.directoryspec as AffilSpecialtyDescription,
PA.IntDirLocation as AffilDirLocation,
p.phyaddress1 as AffilPhyAddress1,
p.phyaddress2 as AffilPhyAddress2,
p.phycity as AffilPhyCity,
p.phystate as AffilPhyState,
COALESCE(NULLIF(p.phyzipcode, ''), 'NA') as AffilPhyZipCode,
COALESCE(NULLIF(p.phycounty, ''), 'NA') as AffilPhyCounty,
p.address1 as AffilMailingAddress1,
p.address2 as AffilMailingAddress2,
p.city as AffilMailingCity,
p.state as AffilMailingState,
p.Zipcode as AffilMailingZip,
p.county as AffilMailingCounty,
COALESCE(NULLIF(p.TIN, ''),'0') as AffilTIN,
COALESCE(NULLIF(p.NPI, ''),'0') as AffilNPI,
COALESCE(CI.contractid, 'NA') as AffilContractID,
COALESCE(C.description, 'NA') as AffilContractDesc
from ProviderManager.dbo.Provider p
left join ProviderManager.dbo.XProviderTypes XP on P.Provtype = XP.[Provider Type_ID]
left join ProviderManager.dbo.planprovinfo PP on P.Provid = PP.provid
left join ProviderManager.dbo.provspecialty ps on ps.provid = p.Provid
left join ProviderManager.dbo.Affiliation pa on pa.affilid= p.Provid
left join ProviderManager.dbo.provider p1 on p1.provid = pa.provid
left join ProviderManager.dbo.CredApproval CA on P1.NPI = CA.NPI
left join ProviderManager.dbo.planprovinfo PP1 on P1.Provid = PP1.provid
left join ProviderManager.dbo.provspecialty ps1 on p1.Provid = ps1.provid
left join ProviderManager.dbo.XProviderTypes XP1 on P1.Provtype = XP1.[Provider Type_ID]
left join ProviderManager.dbo.contractinfo CI on P1.Provid = CI.provid and P.intprovtype = 'Group' and P.Provid = CI.affilid
left join ProviderManager.dbo.Contract C on CI.contractid
COLLATE SQL_Latin1_General_CP1_CI_AS = C.contractid COLLATE SQL_Latin1_General_CP1_CI_AS) cte
WHERE
cte.ProviderIntProvType IN ('Facility', 'Physician')
and (cte.NetworkName COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@network, ',')))
and (cte.AffilPIMProviderID IN (Select Value from VIB_Extracts.dbo.FnSplit(@SLG, ',')))
and (cte.AffilPhyCounty COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@county, ','))OR (@county = 'NA'))
and (cte.Affilphyzipcode COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@zip, ',')) OR (@zip = 'NA'))
and (cte.ProviderSpecialtyCode COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@specCode, ',')))
and (cte.ProviderProvType COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@affiltype, ',')))
and (cte.AffilContractID COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@contract, ',')))
--and (cte.providerNPI COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@npi,',')))
--and (cte.providerTIN COLLATE DATABASE_DEFAULT IN (Select Value from VIB_Extracts.dbo.FnSplit(@TIN,',')))
Order by Cte.ProviderLastName
這是我的代碼 – user7902506
有人可以幫我解決這個問題嗎?我可以提供您需要的所有必要信息。 – user7902506
任何人都可以幫助我,請這? – user7902506
USE [VIB_Extracts]
GO
/****** Object: UserDefinedFunction [dbo].[FnSplit] Script Date: 4/29/2017 9:59:16 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[FnSplit]
(
@List nvarchar(MAX),
@SplitOn nvarchar(5)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Value nvarchar(100)
)
AS
BEGIN
While (Charindex(@SplitOn,@List)>0)
Begin
Insert Into @RtnValue (value)
Select
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
End
Insert Into @RtnValue (Value)
Select Value = ltrim(rtrim(@List))
Return
END
- 1. Null以及Null值
- 2. 選擇具有空值
- 3. 具有多個值的JQuery多選擇
- 4. XPath:選擇具有空值的標記
- 5. 具有不匹配選擇的參數的值是多少?
- 6. 選擇具有多個限制的值
- 7. 從具有多個返回值的select語句中檢索輸出參數值以及其他返回值
- 8. 選擇具有以下值的行
- 9. pyscopg2選擇NULL值
- 10. 選擇具有空值或「默認」值的特定列的行
- 11. SSRS - 我可以硬編碼選擇所有的多值參數
- 12. SQL選擇查詢來選擇具有多個空白空間的字段值?
- 13. 具有多個值的單參數 - 引用擴展選項參數值
- 14. SSRS中的多值參數 - 只選擇一個值
- 15. 如何設置多值參數選擇所有給SSRS參數的特定值
- 16. Sed選擇參數的值
- 17. 選擇具有最大值
- 18. 選擇具有相同值
- 19. 選擇具有唯一值的行數
- 20. 具有值整數的選擇表格
- 21. 具有多個值的SQL參數
- 22. yii2在查詢中選擇空值(選擇NULL作爲列,...)
- 23. webmethod的參數值有空值
- 24. PyMYSQL - 選擇值可以爲NULL
- 25. 數據庫中的參數選擇值
- 26. 具有NULL值的Concat列
- 27. 使選擇值不區分大小寫/具有多個值
- 28. 選項參數的值:FALSE或NULL
- 29. 如何根據以前參數的選擇爲SSRS中的參數選擇值?
- 30. 如何選擇所有值並在SQL中隱藏NULL值?
如果你問一個解決您(或其他人)寫的代碼,你可能想發表你有什麼已經讓人們可以幫助您修復或增強它。 – Ram