Erstellen Sie eine Ansicht, die den Anfang und das Ende der verschiedenen Zeitperioden Sie basieren auf dem aktuellen Datum wollen berechnet, und hat ein Etikett, das Sie als Parameter-Label verwenden können
CREATE VIEW DateRangeParameters
AS
SELECT
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS StartDate,
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate())+1, '2000-01-01') AS EndDate,
'This Month' as Label
UNION ALL
SELECT
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate())-1, '2000-01-01') AS
StartDate,
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS EndDate,
'LastMonth' as Label
UNION ALL
DATEADD(month, DATEDIFF(month, '2000-01-01', getdate()), '2000-01-01') AS StartDate,
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate())+1, '2000-01-01') AS EndDate,
'This quarter' as Label
UNION ALL
SELECT
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate())-1, '2000-01-01') AS
StartDate,
DATEADD(quarter, DATEDIFF(quarter, '2000-01-01', getdate()), '2000-01-01') AS EndDate,
'LastQuarter' as Label
Extend für jede andere Zeit Zeiträume, die Sie Woche, Jahr etc. benötigen.
Erstellen Sie einen Datensatz mit dieser Ansicht direkt, um einen Datumsbereich auswählen zu können.
Verknüpfen Sie die Ansicht mit Ihrer vorhandenen Abfrage mit> = start und < Enddatumsspalten fügen Sie eine WHERE-Klausel hinzu, die die Beschriftung mit Ihrem Berichtsparameter verknüpft.
Auf diese Weise wird mit Ihrem Parameter ausgewählt, welcher Zeitbereich in Ihrer Abfrage verwendet werden soll.
Sie können die Berichte dann entweder manuell ausführen und den Parameter für den Zeitbereich auswählen oder den Bericht für die monatliche und separate Ausführung planen, um ihn vierteljährlich zu planen. Wählen Sie jeweils den entsprechenden Parameter aus, der den entsprechenden Datumsbereich dynamisch berechnet.