Ich arbeite mit Crystal Reports 2016. Die Datenquelle ist MS SQL Server 2008 R2. Derzeit kann ich den Benutzer mithilfe eines Parameters zur Eingabe eines Datumsbereichs für meinen Bericht auffordern. Ich möchte auch eine Eingabeaufforderung für einen Zeitraum hinzufügen. Die Verwendung einer Eingabeaufforderung für einen DateTime-Parameter macht nicht das, was ich will. Der Datumsbereich wählt ein größeres Fenster von Tagen aus, und der Zeitbereich wählt aus, zu welchen Zeiten während des Tages der Bericht die Daten anzeigt. Die Verwendung einer DateTime-Eingabeaufforderung erhöht lediglich die Genauigkeit des Start- und Endtages / der Endzeit des Berichts und führt nicht zu den gewünschten Aktionen. Beide Eingabeaufforderungen beziehen sich auf denselben DateTime-Datensatz in der Datenbank.
Ich habe versucht, zum separaten Zeitpunkt eine separate zweite Parameter-Eingabeaufforderung hinzuzufügen, aber das hat das gleiche Ergebnis wie das Ändern der Parameter-Eingabeaufforderung in einen DateTime-Wert. Ich werde wiederholen: Das ist nicht mein gewünschtes Ergebnis.
Als konkretes, spezifisches Beispiel möchte ich Daten verwenden, die für den 1. September bis 31. Oktober gültig sind, wenn das, worüber ich berichte, an einem oder allen diesen Tagen zwischen 14.00 und 22.00 Uhr EST passiert ist. Wenn ich eine DateTime-Auswahl habe, kann ich zwischen dem 1. September, 14 Uhr und dem 31. Oktober, 22 Uhr wählen. Dies ist jedoch nicht das, was ich auswählen möchte.
Wählen Sie grundsätzlich die Daten aus, die an diesen Tagen zwischen 14.00 und 22.00 Uhr aufgetreten sind. Wo das Startdatum und das Enddatum wählbar sind; und die Startzeit und Endzeit sind wählbar.
Mit der SQL-Sprache möchte ich eine innere Verknüpfung des Datumsbereichs und des Zeitbereichs (der mittleren):
Ein völlig unabhängiges, aber ähnliches Beispiel; Dieses Phänomen ähnelt Besprechungen in Outlook. Sie könnten (sollten aber nicht) eine wirklich lange Besprechung abhalten, die an einem Tag / einer Uhrzeit beginnt und einige Tage später an einem anderen Tag / einer anderen Uhrzeit endet. Sie sollten jedoch eine wiederkehrende Besprechung abhalten, um den Zeitplan für Sie und Ihre Räume ordnungsgemäß zu verwalten. Ich möchte Datensätze ähnlich wie bei einem wiederkehrenden Meeting auswählen.
Wie kann ich eine select expert
Regel erstellen, um die gesuchten Daten zu erhalten? Gibt es eine andere Möglichkeit, dies zu tun? Vielleicht ein Unterbericht?
quelle
HH
mithilfe derDATEPART
Funktion zwischen 14.00 und 22.00 Uhr liegt . Zum Beispiel, ohne dass die SpalteSELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
in der Ansicht explizit verwendet wird, und dann auf denselect expert
Bericht zeigen, um die Daten für ausgewählte Datumsperioden daraus abzurufen. Eine andere Möglichkeit wäre, dieselbe T-SQL-Abfrage zu einem CR-SQL-Befehl zu machen, aber eine SQL-Ansicht kann eine viel bessere Leistung erbringen.SELECT * FROM Table WHERE DATEPART(hh,[DateField]) BETWEEN 14 AND 22
und Sie können spaltenspezifisch mit der Abfrage in der SQL-Ansicht usw.select column1, column2 FROM ~
usw. sein*
.