IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Produits non vendus cette année


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Produits non vendus cette année
    Bonjour,

    Je dois faire une requête qui parait simple dans l'énoncé mais dont je n'arrive pas à voir comment la faire.

    Je m'explique, je veux extraire la liste des articles qui n'ont jamais eu de ventes OU qui n'ont pas été encore vendus dans l'année en cours (attention il peuvent avoir été vendu dans l'année précédente).

    Donc :
    - Si un article n'a jamais été vendu il doit apparaitre
    - Si l'article à été vendu dans une autre année que l'année en cours (2009) et jamais dans l'année en cours il doit apparaitre
    - Si l'article à été vendu au moins dans l'année en cours il NE doit pas apparaitre

    Table 1 : Table de articles
    Table 2 : Tables des ventes
    Table1.champ1=table2.champ1
    Table2.champ2=année de la vente
    Ma requête actuelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select table1.champ1, 
    from table1 
    left join table2 on table1.champ1=table2.champ1
    where ((table2.champ1 is null) or (???????????))
    que faut-il mettre à la place des ??????????????

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ca m'étonnerait que les colonnes de tes tables s'appellent champ1, champ2...
    Alors je vais faire des hypothèses sémantiquement plus réalistes.

    Il te faut donc tous les articles qui ne figurent pas dans la table des ventes en 2009.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT a.id
    FROM articles AS a
    LEFT OUTER JOIN ventes AS v 
      ON a.A_Id = v.V_IdArticle
        AND v.V_Annee = 2009
    WHERE v.V_IdArticle IS NULL
    La jointure avec sa double condition ne devrait prendre que les articles vendus en 2009 et on garde donc tous les articles n'étant pas dans la jointure.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse qui correspond exactement à ce que je voulais. En fin de compte c'était pas la peine de chercher à faire compliqué. Je n'aurai jamais pensé à faire comme cela

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un milliard de smartphones vendus cette année
    Par Stéphane le calme dans le forum Actualités
    Réponses: 3
    Dernier message: 02/12/2013, 11h50
  2. Produits non vendus
    Par sebkun69 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/03/2008, 18h47
  3. [SGBD] Quel choix en cette année 2005??
    Par Lambrosx dans le forum Décisions SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo