Requête SQL simple et pourtant

Fermé
mattouuu Messages postés 136 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 3 février 2011 - 2 févr. 2011 à 15:57
holybeer Messages postés 383 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 29 novembre 2013 - 4 févr. 2011 à 10:46
Bonjour,

Pour simplifié mon problème, j'ai une table vente avec 3 champs:
- nom_produit
- nom_client
- annee_vente.

Je souhaiterais récupérer tous les produits qui ont été vendu avant 2007 ET après 2010.

Cela me paraît tout bête et pourtant je n'y arrive pas.

Merci par avance,
Mathieu.

13 réponses

holybeer Messages postés 383 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 29 novembre 2013 65
Modifié par holybeer le 4/02/2011 à 10:29
M'en doutais, puisqu'un même produit ne peut pas être soit vendu en 2007 et en 2010.

donc je pense que ta requête est bonne. Faut remplacer le And par le Or.
1
select * from vente where annee_vente < 2007 or annee vente > 2010
0
mattouuu Messages postés 136 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 3 février 2011 21
3 févr. 2011 à 16:08
Non, avec cette requête, les produits vendus avant 2007 ne sont pas forcément vendus après 2010, et inversement.
Merci quand même.
0
Soit plus clair...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
3 févr. 2011 à 17:21
Bonjour,
je rejoins francis, ca requête a l'air d'etre bonne... que veux tu exactement ?
0
mb362 Messages postés 74 Date d'inscription mardi 10 février 2009 Statut Membre Dernière intervention 3 février 2011
3 févr. 2011 à 18:05
bonjour ,
mais c'est clair cette REQUETTE ,tous les produits qui ont ete vendus avant 2007 et aprés 2010 ce n'est d'autre que :
tu selectiones les produits qui sont vendus entre 2007 et 2010 et tu les sousctrais de tous les produits que tu as dans ta table ca veut dire ====>

select nom_produit from TABLE
where nom_produit not in
( select nom_produit from TABLE where annee_vente between [2007 , 2010] )



dsl je me rappel pas bien de la syntaxe "between" mais c'est le meme principe.
0
nawak...
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
4 févr. 2011 à 10:06
mb362 : il veut les produits vendu avant 2007 et après 2010 pas entre 2007 et 2010 donc le between ne sert pas à grand chose pour cette requête...
0
Slylia Messages postés 58 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 4 février 2011 1
4 févr. 2011 à 10:12
Melooo : Avec la requète de mb362, on prend tous les produits de la table et on enlève ceux dont la date de vente est supérieure à 2007 et inférieure à 2010. Il nous reste donc les produits vendus avant 2007 et après 2010.
La requète est donc correcte.
0
Je ne vois pas où le rédacteur a écrit qu'il voulait les produits qui n'ont pas été vendus entre 2007 et 2010...
0
holybeer Messages postés 383 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 29 novembre 2013 65
4 févr. 2011 à 10:23
select nom_produit
from vente
where annee_vente < 2007
and annee > 2010;

Mais pas sur.
0
0 résultat.
0
enark78 Messages postés 417 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
4 févr. 2011 à 10:44
ca doit pourtant etre quelque chose comme ca. Les produits, clients et date de vente appartiennent à la meme entité ?
0
holybeer Messages postés 383 Date d'inscription jeudi 3 février 2011 Statut Membre Dernière intervention 29 novembre 2013 65
4 févr. 2011 à 10:46
Et surtout, comment on peut le faire sans clé primaire ? :(
0
enark78 Messages postés 417 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 12 juillet 2012 17
4 févr. 2011 à 10:32
La requete de mb362 est bonne dans l'esprit mais je ne crois pas qu'elle s'applique au cas de mattouuu : il semble vouloir la liste des produits qui ont été vendus avant 2007 et après 2010, pas soit l'un soit l'autre (il faut qu'un meme produit ai été vendu dans ces 2 périodes).
0
enark78, t'expliques mieux que le gars qui a un problème : D
0