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 :

Comment trouver des structures incluses dans d'autres


Sujet :

Langage SQL

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 142
    Points : 120
    Points
    120
    Par défaut Comment trouver des structures incluses dans d'autres
    Bonjour,

    J'ai une table du type suivant:

    TABLE(Nom_table, Nom_Colonne, Ordre, Format_colonne, Longueur_Colonne)

    Cette table stocke des tables ainsi que les colonnes de ces tables et leurs formats. Par exemple :

    Je souhaite faire une requête qui me ramène toutes les tables qui ont au moins les mêmes descriptions qu'une table donnée (même nom de colonne, même format, même longueur, même ordre) ainsi que le nombre de colonnes total.

    Par exemple, si j'ai :

    EMPLOYE1, Num_Employe, 1, Entier, 8
    EMPLOYE1, Nom_Employe, 2, Texte,20
    EMPLOYE1, Prenom_Employe, 3, Texte,15

    EMPLOYE2, Num_Employe, 1, Entier, 8
    EMPLOYE2, Nom_Employe, 2, Texte, 20
    EMPLOYE2, Prenom_Employe, 3, Texte, 15
    EMPLOYE2, Num_Secu, 4, Texte, 13

    EMPLOYE3, Num_Employe, 1, Entier, 8
    EMPLOYE3, Nom_Employe, 2, Texte, 20

    Si ma table donnée est EMPLOYE1, la requête doit avoir pour résultat :

    EMPLOYE1, 3
    EMPLOYE2, 4

    EMPLOYE3 n'est pas un résultat car elle comporte moins de colonnes que la table EMPLOYE1.

    Je me suis orienté vers quelque chose du genre :

    SELECT Nom_Table, count(*)
    WHERE TABLE A, TABLE B
    AND A.Nom_Table = 'Ma_Table'
    AND A.Nom_Colonne = B.Nom_Colonne
    AND A.Ordre = B.Ordre
    AND A.Format_Colonne = B.Format_Colonne
    AND A.Longueur_Colonne = B.Longueur_Colonne
    GROUP BY Nom_Table
    ORDER BY NOM_Table

    Mais ça ne donne pas grand-chose.

    Avez-vous une idée ? Merci d'avance.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    C'est un problème d'inclusion d'ensemble, non ?

    Si oui, jette un oeil à ce thread : [Conception] Inclusion d'ensemble
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 142
    Points : 120
    Points
    120
    Par défaut
    Salut Xo,

    Je ne sais pas si c'est de l'inclusion, mais j'ai résolu le problème :

    SELECT Nom_Table, count(distinct B.Ordre)
    WHERE TABLE A, TABLE B
    AND A.Nom_Table = 'Ma_Table'
    AND A.Nom_Colonne = B.Nom_Colonne
    AND A.Ordre = B.Ordre
    AND A.Format_Colonne = B.Format_Colonne
    AND A.Longueur_Colonne = B.Longueur_Colonne
    GROUP BY Nom_Table
    ORDER BY NOM_Table

    On pourrait faire aussi :

    SELECT Nom_Table, count(distinct B.Nom_colonne)
    WHERE TABLE A, TABLE B
    AND A.Nom_Table = 'Ma_Table'
    AND A.Nom_Colonne = B.Nom_Colonne
    AND A.Ordre = B.Ordre
    AND A.Format_Colonne = B.Format_Colonne
    AND A.Longueur_Colonne = B.Longueur_Colonne
    GROUP BY Nom_Table
    ORDER BY NOM_Table

    A+

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 03/03/2014, 16h16
  2. Comment trouver des objets distincts dans un fichier stl (STereoLithography)
    Par xirius dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/07/2013, 21h42
  3. Comment trouver les structures des api windows
    Par Tonioyo dans le forum Windows
    Réponses: 1
    Dernier message: 21/01/2009, 09h40
  4. Comment positionner des blocs fixed dans un autre bloc global ?
    Par jalex-jalex dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 08/10/2008, 06h21
  5. Réponses: 9
    Dernier message: 23/05/2006, 15h33

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