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

MS SQL Server Discussion :

Comment realiser cette requette ?


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut Comment realiser cette requette ?
    Salut tout le monde
    j'explique mon cas d'abord
    j'ai 2 table (relation 1/N)

    ouvrage:(id_ouvrage, Libelle_ouvrage .....)
    et
    exemplair:(id_exemplai, id_ouvrage .....)

    je veux une requette qui me donne un résultat avec les colones:
    (id_ouvrage, Libelle_ouvrage, Nombre_exemplaire)
    Nombre_exemplaire et le nombre d'exemplaire de chaque ouvrage

    j'espere que c'est bien expliqué

    merci d'avace

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 74
    Points
    74
    Par défaut
    comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT
      a.id_ouvrage, a.Libelle_ouvrage, b.id_exemplai    
    FROM
      ouvrage a INNER JOIN exemplai b ON ( a.id_ouvrage = b.id_ouvrage)

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT
      a.id_ouvrage, a.Libelle_ouvrage, count(b.id_exemplai)    
    FROM
      ouvrage a INNER JOIN exemplai b ON ( a.id_ouvrage = b.id_ouvrage)
    group by a.id_ouvrage, b.Libelle_ouvrage

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 74
    Points
    74
    Par défaut
    c'est vrai oui il faut nombre d'exemplaire je m'a trompé

  5. #5
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut
    Merci
    sa marche, mais j'ai encor un ptit probleme
    les ouvrage dont le nombre des exemplaires est 0 ne sont pas selectionnés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT OUVRAGE.CODE_OUVRAGE, OUVRAGE.CODE_TYPE, OUVRAGE.LIBELLE_OUVRAGE, OUVRAGE.LANGAUE_OUVRAGE, OUVRAGE.NB_PAGE, TYPE.LIBELLE_TYPE, COUNT(EXEMPLAIRE.CODE_EXEMPLAIRE) AS NB FROM OUVRAGE INNER JOIN EXEMPLAIRE ON OUVRAGE.CODE_OUVRAGE = EXEMPLAIRE.CODE_OUVRAGE INNER JOIN TYPE ON OUVRAGE.CODE_TYPE = TYPE.CODE_TYPE WHERE OUVRAGE.CODE_DOMAINE = @CODE_DOMAINE GROUP BY OUVRAGE.CODE_OUVRAGE, OUVRAGE.LIBELLE_OUVRAGE, OUVRAGE.LANGAUE_OUVRAGE, OUVRAGE.NB_PAGE, OUVRAGE.CODE_TYPE,  TYPE.LIBELLE_TYPE
    merci

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    il te faut utiliser une jointure externe au lieu d'une jointure "classique" afin de retourner les lignes de la table ouvrage même s'il n'y a pas de lignes correspon dantes dans exemplai


    SELECT
    a.id_ouvrage, a.Libelle_ouvrage, count(b.id_exemplai)
    FROM
    ouvrage a LEFT OUTER JOIN exemplai b ON ( a.id_ouvrage = b.id_ouvrage)
    GROUP BY a.id_ouvrage, a.Libelle_ouvrage

    je te laisser adapter ...

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

Discussions similaires

  1. [MySQL] Comment puis-je faire l'inverse de cette requette
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/06/2007, 14h05
  2. Comment passer cette ligne
    Par Atchoum_002 dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 16h05
  3. Réponses: 7
    Dernier message: 19/07/2005, 09h31
  4. Réponses: 6
    Dernier message: 15/05/2005, 17h25
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 11h40

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