Je dois trouver les enregistrements actifs qui se situent entre une plage de paramètres de date à partir d'une table contenant des applications. Tout d'abord, je cherche un enregistrement entre la plage de dates dans une table appelée 'app_notes' et vérifie si elle est liée à une application. S'il n'y a pas d'enregistrement app_note dans la plage de dates, je dois regarder la note d'application la plus récente avant la plage de dates. Si cette note d'application indique un statut d'actif, je le sélectionne.Requête pour les enregistrements actifs entre la plage de dates ou la plage de dates la plus récente
La table app_indiv connecte un individu à une application. Il peut y avoir plusieurs enregistrements app_indiv pour chaque individu et plusieurs notes pour chaque app_indiv. Voici ce que j'ai jusqu'à présent:
SELECT DISTINCT individual.indiv_id
FROM individual INNER JOIN
app_indiv ON app_indiv.indiv_id = individual.indiv_id INNER JOIN
app_note ON app_indiv.app_indiv_id = app_note.app_indiv_id
WHERE (app_note.when_mod BETWEEN @date_from AND @date_to)
/* OR most recent app_note indicates active */
Comment puis-je obtenir le dernier dossier de app_note s'il n'y en a pas dans la plage de dates? Comme il y a plusieurs enregistrements app_note possibles, je ne sais pas comment faire pour récupérer uniquement les plus récents.
C'est une exigence assez funky. Je dirais juste prendre une date maximum, et trouver l'enregistrement actif le plus récent avant cela. – Andrew
Pouvez-vous s'il vous plaît publier le schéma de table pour la table app_note, et laissez-moi savoir s'il y a un app_note_id (ou équivalent) qui sera dans l'ordre de la plus récente app_note? Aussi, s'il vous plaît laissez-moi savoir si l'exigence «le plus récent» signifie la gamme de pré-date ou le maximum disponible – AHiggins