Como passar vários valores para um único parâmetro no procedimento armazenado
Estou usando o SSRS para relatar e executar um procedimento armazenado para gerar os dados dos meus relatórios
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
No acima, quando eu passei@PortfolioId = '5,6'
está me dando entradas erradas
Eu preciso de todos os registros paraportfolio id 5 and 6 also
esta maneira correta de enviar os múltiplos valores?
Quando eu executo meus relatórios apenas dando@PortfolioId = '5'
está me dando 120 registros e quando eu o executo dando@PortfolioId = '6'
está me dando 70 registros
Então, quando eu vou dar@PortfolioId = '5,6'
deveria ter de me dar apenas 190 registros no total, mas está me dando mais nenhum registro que eu não entendo exatamente onde eu errei.
Alguém pode ajudar-me? obrigado
todo o código é muito grande para colar, eu estou colando código relevante por favor sugira pista.
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, ',') )