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 :

Sélection d'attributs avec une liste de poids


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut Sélection d'attributs avec une liste de poids
    Bonjour,

    J'ai une table de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TAX_ID       G_ID     O_ID           T_ID           EC_ID
    1             tcf7      hsa     phosphate             iea
    1             tcf7      hsa     phosphate             nd
    1             tm6      hsa     nucleus                 nr
    .....
    ayant les mêmes attributs (TAX_ID, G_ID , O_ID, T_ID ), l'attribut EC_ID peut être multiple comme dans mon exemple.
    Sachant que j'ai une liste de poids d'importance pour l'attribut EC_ID, c'est à dire si j'ai les mêmes quatres premiers attributs avec un EC_ID différent je dois en garder qu'un seul EC_ID en utilisant ma liste de poids:

    genre: si poids(EC_ID1)>poids(EC_ID2) alors garder EC_ID1. ...


    Pourriez vous me donner une piste?

    Merci d'avance.

  2. #2
    Membre régulier Avatar de Doracle
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 74
    Points
    74
    Par défaut
    Fais un bloc PL/SQL.

    C'est à dire que tu vas créer un curseur qui parcouras ta table, et qui a chaque fois fera le test entre les différents poids. Tu compares a chaque "fetch" de ton curseur, et donc si l'élément est plus petit, tu le supprimes, sinon tu n'y touches pas.

    En sortie de ton bloc de code, lorsque tu referas un select simple sur ta table, tu ne trouveras que les lignes ayant les poids les plus élevés.

    Voila pour la théorie, a toi de te renseigner pour la pratique !
    (Ou de nous donner plus d'infos sur les structures et le contenu.)

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Pas besoin de PL ici, un simple requête fera l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT TAX_ID, G_ID, O_ID, T_ID, EC_ID, POIDS
      FROM (SELECT t1.TAX_ID, t1.G_ID, t1.O_ID, t1.T_ID, t1.EC_ID, t2.POIDS,
                   row_number() over(partition by t1.TAX_ID, t1.G_ID, t1.O_ID, t1.T_ID order by t2.poids desc) as RN
              FROM MaTable t1
                   INNER JOIN Poids t2
                     on t2.EC_ID = t1.EC_ID) SR
     WHERE RN = 1;

Discussions similaires

  1. liaison zone de texte avec une liste
    Par FlIpMaN dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/02/2006, 00h39
  2. [MySQL] Problème avec une liste déroulante
    Par leloup84 dans le forum SQL Procédural
    Réponses: 19
    Dernier message: 24/01/2006, 13h57
  3. Réponses: 7
    Dernier message: 24/01/2006, 12h03
  4. alligner des textbox (input) avec une liste
    Par sundjata dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/01/2006, 16h16
  5. Remplir 3 champs textes différents avec une liste déroulante
    Par azorol dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/12/2005, 01h04

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