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 du Club
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 51
    Points
    51
    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 émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    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 du Club
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 51
    Points
    51
    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