Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O SSRS não mostra registros no relatório, mas a consulta retorna resultados


Vou dar um palpite e dizer que é 'como' você está passando o parâmetro multi valor. Pessoalmente ao lidar com SSRS eu uso visualizações, funções de tabela, ou apenas seleciona como SSRS pode entender nativamente que isso:
Where thing in (@Thing)

Na verdade, significa isso no SSMS:
Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)

Eu estou supondo que seu proc está pegando uma string que é na verdade uma matriz separada por vírgula. Quando você faz um parâmetro que usa uma matriz de string como '1,2,3,4' e está abordando o procedimento com algo como um parâmetro 'Texto' aceitando vários valores que você especifica ou obtém de uma consulta, você precisa essencialmente ' Junte-se aos parâmetros se o seu procedimento receber um valor de uma string que contém o array. EG:Proc chamado dbo.test é executado para retornar linhas para valores 1,2,4 para um parâmetro ids são mostrados como:
exec dbo.test @ids = '1,2,4'

Se eu quisesse rodar o proc no SSRS com esse valor e tivesse um parâmetro multi valor chamado 'IDS' eu teria que montar o array manualmente em uma função no SSRS como:
=JOIN(Parameters!IDS.Value, ",")

Essencialmente, dizer ao proc para executar um parâmetro 'IDS' juntando os vários valores em uma cadeia de valores separados por vírgula. Você faz isso no conjunto de dados no painel esquerdo, onde lista 'Parâmetros' em vez de especificar o parâmetro, pois é como [@IDS] você clica no 'Fx' e coloca a função acima.

Por esse motivo, sou um grande defensor de visualizações, seleções e funções de tabela, pois você pode usar a lógica de predicado para cuidar disso.