En 6 requêtes et en ajoutant une variable annee dans chaque table, j'ai peut-être une solution!
Req1A : Tous les produits par personne pour 2012
SELECT nom, produit, annee, count(produit) AS nb FROM T2012 GROUP BY nom, produit, annee;
Req1B : Tous les produits par personne pour 2013
SELECT nom, produit, annee, count(produit) AS nb FROM T2013 GROUP BY nom, produit, annee;
Req1C : Tous les produits par personne par année
Select * from Req1A UNION select * from Req1B ORDER BY annee, nom, produit;
Req1D : Toutes les combinaisons nom et produit ne se répètant pas
SELECT nom, produit FROM Req1C GROUP BY nom, produit HAVING count(produit)<=1;
Req1E :Toutes les combinaisons nom et produit ne se répétant pas pour 2012 : ici on obtient les personnes qui ne se sont pas du tout réinscrites et les personnes ayant changé de formule, ça peut vous intéresser.
SELECT A.nom FROM Req1D AS A, T2012 AS B WHERE A.nom=B.nom AND A.produit=B.produit;
Req1F : Parmi les deux types de données une jointure avec 2013 nous permet de retirer les personnes de 2012 qui ne se sont pas réinscrites.
SELECT DISTINCT A.nom FROM Req1E AS A, T2013 AS B WHERE A.nom=B.nom;
Proposition à étudier plus rigoureusement en imaginant tous les cas particuliers...
Partager