Übergeben mehrerer Werte an einen einzelnen Parameter in einer gespeicherten Prozedur

Ich verwende SSRS zum Melden und Ausführen einer gespeicherten Prozedur, um die Daten für meine Berichte zu generieren

DECLARE @return_value int

EXEC    @return_value = [dbo].[MYREPORT]
        @ComparePeriod = 'Daily',
        @OverrideCompareDate = NULL,
        @PortfolioId = '5,6',
        @OverrideStartDate = NULL,
        @NewPositionsOnly = NULL,
        @SourceID = 13

SELECT  'Return Value' = @return_value

GO

Oben, als ich bestanden habe@PortfolioId = '5,6' Es gibt mir falsche Eingaben

Ich brauche alle Unterlagen fürportfolio id 5 and 6 also Ist dies die richtige Methode, um mehrere Werte zu senden?

Bei der Ausführung meiner Berichte gebe ich nur@PortfolioId = '5' es gibt mir 120 Datensätze und wenn ich es durch Geben ausführe@PortfolioId = '6' es gibt mir 70 Aufzeichnungen

Also, wenn ich geben werde@PortfolioId = '5,6' es sollte mir insgesamt nur 190 Datensätze geben, aber es gibt mir mehr keine von Datensätzen, die ich nicht verstehe, wo ich genau falsch liege.

Könnte mir jemand helfen? Vielen Dank

Der gesamte Code ist zu groß zum Einfügen. Ich füge relevanten Code ein. Bitte schlagen Sie einen Hinweis vor.

CREATE PROCEDURE [dbo].[GENERATE_REPORT]
(
    @ComparePeriod VARCHAR(10),
    @OverrideCompareDate DATETIME,
    @PortfolioId VARCHAR(50) = '2',   --this must be multiple 
    @OverrideStartDate DATETIME = NULL,
    @NewPositionsOnly BIT = 0,
    @SourceID INT = NULL

)  AS
BEGIN   
SELECT  
            Position.Date,
            Position.SecurityId,
            Position.Level1Industry,
            Position.MoodyFacilityRating, 
            Position.SPFacilityRating, 
            Position.CompositeFacilityRating, 
            Position.SecurityType,
            Position.FacilityType,
            Position.Position

        FROM
            Fireball_Reporting.dbo.Reporting_DailyNAV_Pricing POSITION WITH (NOLOCK, READUNCOMMITTED)
         LEFT JOIN Fireball.dbo.AdditionalSecurityPrice ClosingPrice WITH (NOLOCK, READUNCOMMITTED) ON
                    ClosingPrice.SecurityID = Position.PricingSecurityID AND
                    ClosingPrice.Date = Position.Date AND
                    ClosingPrice.SecurityPriceSourceID = @SourceID AND
                    ClosingPrice.PortfolioID IN (
                SELECT
                PARAM
                FROM
                Fireball_Reporting.dbo.ParseMultiValuedParameter(@PortfolioId, ',')                                             )

Antworten auf die Frage(5)

Ihre Antwort auf die Frage