Eu criei um procedimento armazenado (para ser usado no SSRS) que possui parâmetros cujos valores são mais de um. Quando executo este procedimento armazenado no SSMS fornecendo os valores para esse parâmetro, o SP não retorna nenhum resultado. Deve retornar mais de 1 linhas
CREATE PROCEDURE [dbo].[sp_tst_CSENG_JulieCapitalHours]
@StartDate DATETIME ,
@EndDate DATETIME ,
@ProjHomeGrp NVARCHAR(MAX) ,
@ProjHier NVARCHAR(MAX)
AS
BEGIN
SELECT [Capital Project] ,
[Capital Task] ,
ResourceName ,
ProjectName ,
[Project Home Group] ,
ActualWork ,
TimeByDay ,
ResourceStandardRate ,
ActualWork * ResourceStandardRate AS Dollars ,
[Project Hierarchy]
FROM [IR.CapOnly]
WHERE ( TimeByDay >= @StartDate )
AND ( [Project Home Group] = ( @ProjHomeGrp ) )
AND ( TimeByDay <= @EndDate )
AND ( ActualWork > 0 )
AND ( [Project Hierarchy] = ( @ProjHier ) )
ORDER BY ProjectName ,
ResourceName
END
Você pode ver que na cláusula where, Project Home Group (@ProjHomeGrp) e Project Hierarchy (@ProjHier) são os parâmetros, cujo valor quando fornecido (mais de 1) SP retorna valores zero.
Os valores que estou passando são:
Data de início: 01/01/2011
Data de término: 31/12/2012
@ProjHomeGrp : PHG1,PHG2,PHG3,PHG4,PHG5,PHG6,PHG7
@ProjHier: PROH1, PROH2, PROH3
Deixe-me saber para qualquer dúvida!
Você precisa dividir seus parâmetros em linhas e usar
where ... in
como verificação.Usando uma função de divisão como esta, seu código pode ficar assim.