SSRS: „multi value“ Parameter Übergeben an Subreports und Datasets…

Mir sind zwei etwas unterschiedliche Ansätze wichtig. Speziell die Variante 2 ist wichtig wenn große Mengen von Sätzen in einem Parameter benutzt wird.

Variante 1

=join(Parameters!.Value,",")

und kann im Dataset an beliebigen Stellen benutzt werden – vor allem als zwischen Variable im SQL-Code des Dataset benutzt werden.

Variante 2

Parameter in Datasets:
=Parameters!MyParamName.Value

Achtung nicht das „(0)“: =Parameters!MyParamName.Value(0)
Aber im Dataset muss der Parameter direkt so genutzt werden und nur bedingt mehrfach oder im SQL-Code an interne Variablen zu übergeben:

...
WHERE values IN (@parameter)
...

Link/s:

https://stackoverflow.com/questions/13725622/passing-multivalue-parameter-to-a-subreport

https://docs.microsoft.com/de-de/sql/reporting-services/report-design/add-a-multi-value-parameter-to-a-report?view=sql-server-2017

MS Report mit Parameter mit Zeiträume [von – bis]

Bei Anpassungen von Reports sind gelegentlich vorbereitete Zeiträume zielführend und hilfreich:

Select 	
	dateadd(SECOND, -1, [dbo].fn_UTCToLocalTime([dbo].[fn_EndOfToday](getutcdate()))) as EndOfToday
	,[dbo].fn_UTCToLocalTime([dbo].[fn_BeginOfThisWeek](getutcdate())) as BeginOfThisWeek
	, dateadd(SECOND, -1, [dbo].fn_UTCToLocalTime([dbo].[fn_EndOfThisWeek](getutcdate()))) as EndOfThisWeek

	, [dbo].fn_UTCToLocalTime([dbo].[fn_BeginOfLastMonth](getutcdate())) as BeginOfLastMonth
	, [dbo].fn_UTCToLocalTime([dbo].[fn_BeginOfThisMonth](getutcdate())) as BeginOfThisMonth
	, dateadd(SECOND, -1, [dbo].fn_UTCToLocalTime([dbo].[fn_EndOfThisMonth](getutcdate()))) as EndOfThisMonth

	, [dbo].fn_UTCToLocalTime([dbo].[fn_BeginOfLastYear](getutcdate())) as BeginOfLastYear
	, [dbo].fn_UTCToLocalTime([dbo].[fn_BeginOfThisYear](getutcdate())) as BeginOfThisYear
	, dateadd(SECOND, -1, [dbo].fn_UTCToLocalTime([dbo].[fn_EndOfThisYear](getutcdate()))) as EndOfThisYear