Bonjour,
Et merci par avance pour le temps consacré à me répondre
J'ai une requête un peu complexe:
J'ai un peu plus de 1000 bureaux, mais je ne voudrais afficher que ceux qui n'ont pas effectué leur relevé de réassort au mois de septembre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT bureau.idbureau FROM region,bureau WHERE bureau.idbureau NOT IN (SELECT distinct(bureau.idbureau) FROM region,bureau,etatstock,detailetat WHERE etatstock.idetatstock= detailetat.idetat AND etatstock.idbureau = bureau.idbureau AND bureau.idregion=region.idregion AND dateetatstock between '2009-09-01' AND '2009-09-31') AND bureau.idregion=region.idregion ORDER BY idbureau;
Cette requête fonctionne, mais est TRES, TRES longue.
J'ai essayé de l'optimiser avec un NOT EXISTS. Ca fonctionne aussi, mais c'est guère plus long.
Je ne sais pas si utiliser un LEFT OUTER JOIN rendrait cette requete plus rapide. Si c'est le cas, je ne sais même pas faire une requête de ce type.
Merci de vos réponses.
Partager