Ich muss alle Daten zwischen einem bestimmten (Rezept) Startdatum und Enddatum (als Teil einer viel größeren Abfrage) auflisten.MySQL - Liste alle Termine zwischen zwei angegebenen Daten mit Sitzungsvariablen
Table name: patientprescription
Start date field: prescriptionstartdate
End date field: prescriptionenddate
Ich versuche, Sitzungsvariablen zu verwenden. Aber ich finde es schwierig, den Anfangswert in der Variablen zu setzen. Die erste Ausführung führt zu keinem Wert, aber die nachfolgende Ausführung gibt mir das korrekte Ergebnis (weil die erste Ausführung die Variablen setzt).
mein Bedürfnis zu vereinfachen, hier ist der Kern meiner Anfrage:
SELECT
@gg := DATE_ADD (@gg, INTERVAL 1 DAY) AS rxDate
FROM patientprescription AS rx
JOIN (SELECT @gg := @hh FROM t1) AS v1 ON @hh := rx.prescriptionstartdate
WHERE
rx.id = 8
AND @gg <= rx.prescriptionenddate;
t1 einige Tabelle mit wenigen Datensätzen ist.
Um die Variablen zurück nach Ausführung zurück:
SELECT @gg := NULL, @hh := NULL;
Mögliches Duplikat [Wie zwischen zwei Daten in MySQL SELECT-Abfrage Liste der Daten bekommen] (https://stackoverflow.com/questions/9295616/how-to-get-list-of-dates-between -two-dates-in-mysql-select-query) – GurV
Vielen Dank für den Hinweis auf den Link. Ich sehe es mir an. Außerdem ist es möglich, das gleiche Ergebnis mit der obigen Abfrage mit Variablen zu haben? –
Noch kämpfen? Siehe https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-very-simple-sql-query – Strawberry