aide sur une requete
Le
val

Bonjour,
Pour connaître tous les clients ayant commandé en 2012 je fais :
select distinct comptesClients from VENTES where date like "2012%";
Je peux faire la même requête pour 2011 par exemple mais ce que
j'aimerais ce serait de trouver la liste des clients ayant commandé en
2011 mais pas en 2012.
Voyez-vous comment je pourrais construire ça ?
Merci pour votre temps.
Pour connaître tous les clients ayant commandé en 2012 je fais :
select distinct comptesClients from VENTES where date like "2012%";
Je peux faire la même requête pour 2011 par exemple mais ce que
j'aimerais ce serait de trouver la liste des clients ayant commandé en
2011 mais pas en 2012.
Voyez-vous comment je pourrais construire ça ?
Merci pour votre temps.
select distinct comptesClients from VENTES where date like "2011%"
and not exists (select 1 from VENTES where date like "2012%");
ça veut dire quoi exactement le "select 1" dans ce cas ?
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
Ca renvoie 1 à chaque fois que la where clause est vérifiée
Inutile de renvoyer une vraie valeur puisque le seul but est de
vérifier l'existence d'au moins une ligne
Je ne connaissais pas cet opérateur 'exists' et je crois qu'il va
m'être très utile à l'avenir. J'ai juste un peu changé la requête pour
obtenir ce que je voulais :
select distinct comptes as cpt from VENTES where date like "2011%" and
not exists (select 1 from VENTES where date like "2012%" and
compte=cpt);
Merci beaucoup !
ok, pigé, merci bien.
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais