Bonjour,
Je dois adapter un traitement HQL existant (donc je ne peux pas tout refaire) pour
Je souhaite conserver telle quelle ma table A et ajouter un champ qui sera valorisé par une valeur "en dur" si le critère de jointure avec ma table B est rempli au moins une fois.
Ma table A contient (parmi des dizaines d'autres champs) :
nom
prenom
date_saisie
Ma table B est un référentiel composé de :
nom
prenom
date_reelle
Le critère de jointure est le suivant : a.nom=b.nom AND a.prenom=b.prenom AND [b.date_reelle - 7 jours <= a.date_saisie <= b.date_reelle + 7 jours]
On est d'accord que c'est pourri et pas optimisé du tout mais je n'ai pas le choix, le traitement doit prendre en compte les écarts de saisie de la date à +/- 7 jours. Et il n'y a pas d'autre champ permettant de faire le lien.
Le problème est qu'avec de tels critères une ligne de A peut matcher avec plusieurs ligne de B, or je veux seulement savoir si ça matche au moins une fois et si c'est le cas mettre "x" dans une nouvelle colonne en sortie de la requête (colonne qui restera vide pour les lignes où ça n'a pas matché).
En résumé je cherche donc comment faire un left join qui ne rajoute pas de ligne dans la table de gauche lorsqu'il y a plusieurs match avec la table de droite.
Merci d'avance pour votre aide.
Partager