レポート用のデータを生成するストアド プロシージャのレポートと実行に SSRS を使用しています
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
上記で合格したとき、@PortfolioId = '5,6'
間違った入力が得られます
portfolio id 5 and 6 also
複数の値を送信するこの正しい方法は、すべてのレコードが必要ですか?
レポートを実行すると、@PortfolioId = '5'
それを与えるだけで 120 レコードが得られ、与えて実行すると@PortfolioId = '6'
70 レコードが得られます。
したがって、私が与えるとき@PortfolioId = '5,6'
、それは私に全部で190個のレコードしか与えないはずですが、それ以上のレコードを与えていません。どこが間違っているのか正確にはわかりません.
誰でも私を助けることができますか?ありがとう
すべてのコードが大きすぎて貼り付けられません。関連するコードを貼り付けています。手がかりを提案してください。
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, ',') )