sql >> Databasteknik >  >> RDS >> Sqlserver

SSRS visar inga poster i rapporten men frågan returnerar resultat

Jag tar en gissning och säger att det är "hur" du skickar flervärdesparametern. Personligen när jag hanterar SSRS använder jag vyer, tabellfunktioner eller bara väljer eftersom SSRS kan förstå att detta:

Where thing in (@Thing)

Betyder faktiskt detta i SSMS:

Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)

Jag antar att din proc tar en sträng som faktiskt är en kommaseparerad array. När du gör en parameter som tar en strängarray som '1,2,3,4' och du adresserar proceduren med något som en 'Text'-parameter som accepterar flera värden du antingen anger eller hämtar från en fråga behöver du i huvudsak ' Gå med i parametrarna om din procedur tar ett värde av en sträng som innehåller arrayen. EG:Proc som kallas dbo.test körs för att returnera rader för värdena 1,2,4 för en parameter-ID visas som:

exec dbo.test @ids = '1,2,4'

Om jag ville köra proc i SSRS med detta värde och jag hade en parameter med flera värden som heter 'IDS' skulle jag behöva montera arrayen manuellt i en funktion i SSRS som:

=JOIN(Parameters!IDS.Value, ",")

I huvudsak berätta för proc kör en parameter 'IDS' genom att sammanfoga flera värden i en kedja av kommaseparerade värden. Du gör detta i datamängden i den vänstra rutan där den listar 'Parameters' istället för att specificera parametern eftersom den är som [@IDS] klickar du på 'Fx' istället och lägger in funktionen ovan.

Av denna anledning är jag en stor förespråkare för vyer, urval och tabellfunktioner eftersom du kan använda predikatlogiken för att ta hand om detta.



  1. Skapa en "Istället för" trigger i SQL Server

  2. hash en SQL-rad?

  3. Konvertera javascript till datumobjekt till mysql-datumformat (ÅÅÅÅ-MM-DD)

  4. IO.FileNotFoundException i MySql.Data.dll:Kan inte ladda System.Security.Permissions