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

SSRS Multiple Value-parameterfilter baseret på datasæt

Jeg besluttede at skrive min kommentar til dit svar, M.Ali, som et svar på mit eget spørgsmål, da jeg fandt en måde at løse dette på. Måske har jeg ikke forklaret mit problem præcist nok. Jeg er klar over, hvordan ovenstående ting fungerer, og hvordan man sender parametre baseret på et datasæt ned gennem SQL for at oprette et andet datasæt, flere værdier tilladt eller ej. Jeg sætter dog pris på dit svar!

Det problem, jeg har, er, at den forespørgsel, der definerer min liste over værdier for parameteren, og forespørgslen for det faktiske datasæt, er den samme. Og det er en KÆMPE forespørgsel. Med andre ord, hvor der står 'TABEL' i kodeeksemplet, har jeg flere hundrede linjer kode. Og mit mål var ikke at få hele denne forespørgsel til at definere begge datasæt. Hvis jeg i fremtiden skal ændre forespørgslen, bliver jeg nødt til at gøre det mere end ét sted. Sådan løste jeg det:

Jeg placerede hovedforespørgslen i et delt datasæt i stedet for at integrere det i min rapport. Og så tilføjede jeg en rækkenummer-funktion til min forespørgsel som sådan:

SELECT ID, Value, UserID, rn = ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY UserID)
FROM *my huge query*

Det betyder, at der kun er én 'rn =1' række pr. UserID. Så gik jeg tilbage til min rapport. Mit originale DataSet1 ville så bare pege på det delte datasæt. DataSet2 (parameteren en) ville også pege på det delte datasæt med den ene forskel, at jeg tilføjede et filter til det datasæt, der siger 'rn =1'. Jeg lavede derefter en parameter med 'tillad flere værdier', der tog sine værdier fra DataSet2. Og det fungerer som en charme. På denne måde kan jeg bare gå til det delte datasæt, når jeg skal opdatere forespørgslen, og både DataSet1 og DataSet2 vil blive opdateret i overensstemmelse hermed!

Succes :)

Igen, tak for dit svar!



  1. Hvordan bruger man en brugervariabel som tæller med indre joinforespørgsler, der indeholder GROUP BY-sætning?

  2. SQL Server 2008 ændre datafangst vs triggere i revisionsspor

  3. Indsæt i flere tabeller i én forespørgsel

  4. Hvordan tilføjer man en vognretur til en værdi i MySQL?