Je dois énumérer toutes les dates entre une date de début (de prescription) donnée et une date de fin - (dans le cadre d'une requête beaucoup plus grande).MySQL - Liste toutes les dates entre deux dates données en utilisant les variables de session
Table name: patientprescription
Start date field: prescriptionstartdate
End date field: prescriptionenddate
J'essaie d'utiliser des variables de session. Mais je trouve difficile de définir la valeur initiale dans la variable. La première exécution n'aboutit à aucune valeur mais l'exécution suivante me donne le résultat correct (parce que la première exécution définit les variables).
Pour simplifier mon besoin, voici l'essentiel de ma requête:
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 est une table avec quelques enregistrements.
Pour réinitialiser les variables de retour après l'exécution:
SELECT @gg := NULL, @hh := NULL;
double possible de [Comment obtenir la liste des dates entre deux dates dans la requête select mysql] (https://stackoverflow.com/questions/9295616/how-to-get-list-of-dates-between -deux-dates-dans-mysql-select-query) – GurV
Merci de m'avoir indiqué le lien. Je le regarde. En plus de cela, est-il possible d'avoir le même résultat avec la requête ci-dessus en utilisant des variables? –
Toujours aux prises? Voir https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-query – Strawberry