sql >> Database teknologi >  >> RDS >> Sqlserver

SSRS viser ingen poster i rapporten, men forespørgslen returnerer resultater

Jeg vil gætte og sige, at det er 'hvordan' du videregiver parameteren med flere værdier. Personligt, når jeg beskæftiger mig med SSRS, bruger jeg visninger, tabelfunktioner eller vælger bare, da SSRS kan forstå, at dette:

Where thing in (@Thing)

Betyder faktisk dette i SSMS:

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

Jeg gætter på, at din proc tager en streng, der faktisk er et kommasepareret array. Når du laver en parameter, der tager et string-array som '1,2,3,4', og du adresserer proceduren med noget som en 'Tekst'-parameter, der accepterer flere værdier, du enten angiver eller får fra en forespørgsel, skal du i det væsentlige ' Deltag i parametrene, hvis din procedure tager en værdi af en streng, der indeholder arrayet. EG:Proc kaldet dbo.test udføres for at returnere rækker for værdierne 1,2,4 for en parameter id'er vises som:

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

Hvis jeg ville køre proc'en i SSRS med denne værdi, og jeg havde en parameter med flere værdier kaldet 'IDS', ville jeg skulle samle arrayet manuelt i en funktion i SSRS som:

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

I det væsentlige fortæller procen om at køre en parameter 'IDS' ved at samle de flere værdier i en kæde af kommaseparerede værdier. Du gør dette i datasættet i venstre rude, hvor det viser 'Parameters' i stedet for at angive parameteren, da det er ligesom [@IDS] du klikker på 'Fx' i stedet for og indsætter funktionen ovenfor.

Af denne grund er jeg en stor fortaler for synspunkter, udvalg og tabelfunktioner, da du kan bruge prædikatlogikken til at tage sig af dette.



  1. Ingen unik begrænsning, der matcher de givne nøgler til den refererede tabel

  2. Prag PostgreSQL Meetup

  3. Tjek for mislykket e-mail i SQL Server (T-SQL)

  4. Oracle-opdateringsforespørgsel for at opdatere poster i sekventiel rækkefølge