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 :
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')
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.

Je me suis donc orienté vers l'utilisation d'un INTERSECT mais je ne suis pas sur de moi:
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')
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.

Si une personne a une solution pour cette problématique, merci d'avance à celui qui répondra à mon message.