Bonjour,
J'ai une table réception dans laquelle je dois récupérer tous les codes produit qui ont été acheté dans deux année différente.
Pour ce faire, j'utilise la requête suivante :
Cependant, le chargement des données est assez long, au point que je ne peux même pas obtenir toutes les données dans un délais convenable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT * FROM RECEPTION WHERE CODEPRODUIT IN( SELECT A.CODEPRODUIT CODEPRODUIT FROM (SELECT DISTINCT CODEPRODUIT FROM RECEPTION WHERE ANNEE='2008') A, (SELECT DISTINCT CODEPRODUIT FROM RECEPTION WHERE ANNEE='2009') B WHERE A.CODEPRODUIT=B.CODEPRODUIT) AND ANNEE IN('2008','2009')
Je me suis donc orienté vers l'utilisation d'un INTERSECT mais je ne suis pas sur de moi:
Cette requête est beaucoup plus rapide mais je ne sais pas si je récupère les mêmes données étant donné que je ne peux pas le comparer avec la première.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT * FROM RECEPTION WHERE CODEPRODUIT IN( (SELECT CODEPRODUIT FROM RECEPTION WHERE ANNEE='2008') INTERSECT (SELECT CODEPRODUIT FROM RECEPTION WHERE ANNEE='2009')) AND ANNEE IN('2008','2009')
Si une personne a une solution pour cette problématique, merci d'avance à celui qui répondra à mon message.
Partager