J'ai 2 requêtes Informix qui, selon moi, devraient retourner les mêmes données mais ne le font pas. La première requête utilise une sous-requête en tant que filtre et ne retourne pas correctement les lignes. La seconde est effectuée à l'aide d'une jointure externe gauche vérifiant null sur la même colonne utilisée dans la sous-requête et renvoie correctement l'ensemble de données correct. Ai-je raté quelque chose ou est-ce un bug?2 requêtes qui devraient retourner les mêmes données mais pas
select i.invoice_date, oe.commit_no
from oe
join invoice i
on oe.invoice_no = i.invoice_no
where i.invoice_date > today - 60
and oe.commit_no not in (select commit_no from bolx)
select i.invoice_date, oe.commit_no, bolx.bol_no
from oe
join invoice i
on oe.invoice_no = i.invoice_no
left join bolx
on bolx.commit_no = oe.commit_no
where i.invoice_date > today - 60
and bolx.commit_no is null
schémas abrégée (un héritage db, donc il a quelques bizarreries):
invoice
invoice_no char(9),
invoice_date date
oe
commit_no decimal(8, 0),
invoice_no char(9)
bolx
commit_no decimal(8, 0)
C'est le cas. Merci. J'ai changé mon application pour le second formulaire. –
Ce comportement n'est pas particulier à Informix: il s'applique à n'importe quelle base de données SQL. –