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

SQL Oracle Discussion :

une table contient plusieurs valeurs d'autre table


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut une table contient plusieurs valeurs d'autre table
    bonjour tt le monde
    je suis un peu débutant en SQL
    j'ai rencontré ce problème
    j'ai une table employé (matricule//primary key//,nom,prenom)

    et une table matériel (num_mat //primary key//, description, matricule //clé etragère de la table employé//)
    sachant qu'un employé peut posséder plusieurs matériels
    je voudrais bien afficher ce resultat:
    resultat (matricule,nom,prenom,num_mat,description)
    exemple: (1,a,b,10,aaaa)
    11,bbbb)
    12,cccc)
    sans dupliquer l'affichage du matricule d'utilisateur
    je sais que j'ai mal exprimé, mais j'espère bien que vous pouvez m'aider
    merci d'avance

  2. #2
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Utilise les fonctions analytiques pour numéroter tes lignes pour chaque employé, et utilises ce numéro pour conditionner l'affichage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT CASE rk WHEN 1 THEN matricule ELSE NULL END
    , CASE rk WHEN 1 THEN nom ELSE NULL END
    , CASE rk WHEN 1 THEN prenom ELSE NULL END
    , num_mat
    , description
    FROM 
    	(SELECT a.matricule, a.nom, a.prenom, b.num_mat, b.description, ROW_NUMBER() OVER (PARTITION BY a.matricule ORDER BY b.num_mat) rk
    	 FROM employe a
    		JOIN materiel b ON a.matricule = b.matricule
    	)
    A noter que tu peux faire ça en un seul coup et en omettant les clause ELSE, mais pour la compréhension...

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    merci d'avoir repondu
    ta requête marche bien
    merci

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 12/05/2014, 15h34
  2. Updater une table avec plusieurs valeurs
    Par hammag dans le forum SQL
    Réponses: 10
    Dernier message: 28/03/2012, 16h02
  3. Réponses: 1
    Dernier message: 29/10/2009, 17h28
  4. Réponses: 1
    Dernier message: 14/04/2007, 08h03
  5. Update d une table avec plusieurs valeurs
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2006, 08h58

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