Ich verwende MS SQL Report Builder 3.0, um einen Bericht für SQL Reporting Services zu generieren. Ich habe einen Datensatz, der die Spalten AppointmentDate, PatientID und InsuranceCarrier enthält. Ich möchte herausfinden, wie viele DISTINCT-Patienten innerhalb eines bestimmten Zeitraums besucht wurden (von AppointmentDate bis EndingDate). Der einzige Zeitpunkt, an dem ein Patient mehr als einmal in der Abfrage anwesend sein sollte, ist, ob er bei einem Wiederholungsbesuch einen anderen Versicherungsträger hatte.SQL Reporting Services, Filtern nach Feld nicht in DISTINCT SELECT-Anweisung?
Wenn ich die folgende Abfrage ausführen:
SELECT DISTINCT AppointmentDate, PaientID, InsuranceCarrier
FROM Encounters
WHERE AppointmentDate >= @beginningofdaterange
AND AppointmentDate <= @endofdaterange
Dann bekomme ich eine Liste der einzelnen Patienten und Versicherungsträger, die in diesem Zeitraum besucht. Da jedes AppointmentDate auch unterschiedlich ist, werden die Patienten leider für jedes individuelle Termindatum dupliziert. Wenn beispielsweise Patient X in diesem Zeitraum zweimal angezeigt wird, werden beide Termine angezeigt.
Wenn ich das AppointmentDate aus meiner SELECT-Anweisung entferne, kann ich unter Dataset-Eigenschaften im Berichts-Generator 3.0 nicht mehr basierend auf dem AppointmentDate-Ausdruck filtern. Ich könnte meine Filterung direkt in der WHERE-Klausel der T-SQL-Anweisung durchführen, aber das bedeutet, dass ich die vom Benutzer eingegebenen Laufzeitberichtsparameter nicht verwenden kann. Dies ist ein Problem, da ich basierend auf Berichtsparametern filtern, die der Benutzer beim Ausführen des Berichts auswählt. Sie geben das Start-AppointmentDate ein und ein "18-Monate-Prior" -Parameter wird als Anfangs- und Endpunkt von AppointmentDates berechnet.
Wie also schließe ich das AppointmentDate ein, damit ich es filtern kann, es aber nicht in meine DISTINCT SELECT einbeziehe, damit es meine Daten korrekt DISTINCTIFICTIERT.
Das ist eine gute Frage und persönlich bin ich daran interessiert, die richtige Antwort (oder welche Anzahl von Arbeitsvorschlägen) dazu zu lernen. Aber über eine Anwendung (ein Reporting-Tool) und insbesondere über die Verwendung dieser Anwendung (im Gegensatz zu ihrer Installation, Konfiguration usw.), glaube ich, dass die Frage nicht wirklich auf DBA.SE gehört, was ist über Dinge, die mit der Serverseite eines DBMS zusammenhängen, sowie über die Konfiguration von allen eingebauten Client-Tools, die das DBMS hat. Daher flehe ich an, dies zu [so] zu migrieren. –