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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick V
Le 10/01/2013 15:41, val a écrit :
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.
select distinct comptesClients from VENTES where date like "2011%" and not exists (select 1 from VENTES where date like "2012%");
Le 10/01/2013 15:41, val a écrit :
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.
select distinct comptesClients from VENTES where date like "2011%"
and not exists (select 1 from VENTES where date like "2012%");
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.
select distinct comptesClients from VENTES where date like "2011%" and not exists (select 1 from VENTES where date like "2012%");
Une Bévue
Le 10/01/13 16:07, Patrick V a écrit :
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
Le 10/01/13 16:07, Patrick V a écrit :
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
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
Alain Montfranc
Une Bévue a écrit :
Le 10/01/13 16:07, Patrick V a écrit :
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 ?
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
Une Bévue a écrit :
Le 10/01/13 16:07, Patrick V a écrit :
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 ?
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
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 ?
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
val
Patrick V a exposé le 10/01/2013 :
Le 10/01/2013 15:41, val a écrit :
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.
select distinct comptesClients from VENTES where date like "2011%" and not exists (select 1 from VENTES where date like "2012%");
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 !
Patrick V a exposé le 10/01/2013 :
Le 10/01/2013 15:41, val a écrit :
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.
select distinct comptesClients from VENTES where date like "2011%"
and not exists (select 1 from VENTES where date like "2012%");
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);
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.
select distinct comptesClients from VENTES where date like "2011%" and not exists (select 1 from VENTES where date like "2012%");
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 !
Une Bévue
Le 10/01/13 17:57, Alain Montfranc a écrit :
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
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
Le 10/01/13 17:57, Alain Montfranc a écrit :
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
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
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
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