SQL | Sélection sur le max d'une date - SQL/NoSQL - Programmation
Marsh Posté le 16-07-2014 à 15:13:08
Je te conseille de remplacer le not in par un LEFT JOIN et dans la clause having, mettre un is null sur le champ qui sert de jointure (le champ pfo_idrattachement apparemment) comme ça, ça te donnes les enregistrements qui se trouvent dans la table de gauche de la jointure mais qui ne se trouvent pas dans la table de droite.
Marsh Posté le 16-07-2014 à 18:07:25
Merci du conseil Rufo !
Voici ma requête qui marche maintenant :
Code :
|
Marsh Posté le 17-07-2014 à 09:46:25
De la même manière que j'indiquais qu'il fallait éviter les NOT IN, il faut aussi éviter les IN. Tu peux probablement le remplacer par une jointure. Sinon, tu prends la requête que t'as mise dans le IN et tu la place dans le FROM afin que son résultat soit vu comme une table et tu pourras alors faire la jointure. Un truc du genre
Code :
|
Marsh Posté le 16-07-2014 à 10:34:04
Bonjour tout le monde,
J'ai fait une requête qui m'affiche les lignes que je cherche mais il me reste un dernier critère de sélection, et celui-ci est plus complexe à obtenir :
Pour l'instant la requête me génère 14 lignes dont le sujet est pfo_idRattachement.
Chaque pfo_idRattachement se trouve dans la table principale tp_rti, voici l'exemple de lignes
Je voudrais que ce idRattachement ne fasse PAS partie de mes 14 résultats actuel car le dernier enregistrement (max(dateorigineFlux)) est différent de 4.
Pour l'instant j'ai fait ceci mais ça ne me semble pas bon :
Requête qui fonctionne mais ne prend pas en compte mon dernier critère de sélection :
Avec le critère en plus :
Savez-vous comment je pourrais l'implémenter et par ailleurs de façon optimisé, car ma requête prend déjà pas mal de temps.
Si vous voyez des optimisations dans ma requête actuelle je suis preneur également.
D'avance merci pour votre aide