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

Oracle Discussion :

TRIGGER AFTER pour classement


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut TRIGGER AFTER pour classement
    Bonjour à tous,
    je vous expose mon problème : il s'agit de classer de façon automatique dans une table la liste des personnes ayant les meilleures notes et ce , par groupe.
    Coté client : une page WEB pour saisir les notes pour chaque personne pour un groupe bien précis.
    Coté base de données : une table avec un champ groupe, un identifiant, les 4 champs de chacune des notes, 4 champs pour chaque note multipliée par son coef, une colonne total des notes multipliées par le coef et une colonne classement pour permettre par la suite de n'extraire de cette table que ceux qui sont premier.
    Les notes sont modifiées de façon permanente pendant l'année.
    J'ai créer un TRIGGER BEFORE pour le calcul des notes avec leur coef respectif et le calcul du total...
    Ce que je voudrais, c'est de trouver le moyen de refaire le classement à chaque modification des notes dans un même groupe de personne.

    Merci de votre aide

    Ps : pour le moment, ce classement se fait coté client en asp avec maj de la colonne.( select * from t_note order by total puis update pour chaque ligne)

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par RSI06 Voir le message
    Ce que je voudrais, c'est de trouver le moyen de refaire le classement à chaque modification des notes dans un même groupe de personne.
    Ce se matérialise comment ce classement ?
    Un champ dans la table que tu es en train de mettre à jour ? ou une autre table ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par xavi Voir le message
    Ce se matérialise comment ce classement ?
    Un champ dans la table que tu es en train de mettre à jour ? ou une autre table ?
    C'est dans la même table

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par RSI06 Voir le message
    C'est dans la même table
    Voici la structure de la table

    ID_NOTE NOT NULL NUMBER(10)
    ID_GROUPE NOT NULL NUMBER(10)
    NOTE_C1 NUMBER(2)
    NOTE_C1_COEF NUMBER(2)
    NOTE_C2 NUMBER(2)
    NOTE_C2_COEF NUMBER(2)
    NOTE_C3 NUMBER(2)
    NOTE_C3_COEF NUMBER(2)
    NOTE_C4 NUMBER(2)
    NOTE_C4_COEF NUMBER(2)
    TOTAL_NOTE NUMBER(10)
    CLASSEMENT NUMBER(2)
    COMMENTAIRE VARCHAR2(350)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 68
    Points : 78
    Points
    78
    Par défaut
    ouh la ...
    Je te suggère de faire une recherche sur "mutating table" ou "table mutante" dans le forum, la faq, les tutos, etc avant de te lancer.

    Perso, je ne mettrais pas le classement dans la même table, c'est trop compliqué à gérer par trigger.
    S'il faut vraiment que ce soit dans la même table, je ferais une procedure stockée lancée régulièrement par batch ou job pour recalculer le classement.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Pourquoi tu ne fais pas une bête vue pour avoir un ordre, voir même pour calculer les notes ?
    Si ta table est vraiment énorme, tu peux opter pour une vue matérialisé que tu mets à jour après des ajouts dans ta table.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par xavi Voir le message
    ouh la ...
    Je te suggère de faire une recherche sur "mutating table" ou "table mutante" dans le forum, la faq, les tutos, etc avant de te lancer.

    Perso, je ne mettrais pas le classement dans la même table, c'est trop compliqué à gérer par trigger.
    S'il faut vraiment que ce soit dans la même table, je ferais une procedure stockée lancée régulièrement par batch ou job pour recalculer le classement.
    Je vais passer par une autre table.
    Merci

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Pourquoi tu ne fais pas une bête vue pour avoir un ordre, voir même pour calculer les notes ?
    Si ta table est vraiment énorme, tu peux opter pour une vue matérialisé que tu mets à jour après des ajouts dans ta table.
    Une vue pour afficher un ordre ou calculer les notes ne me suffirait pas car il y a par la suite la nécessité de récupérer dans des pages WEB les noms des personnes qui sont classées 1 ou 2 ou 3 en fonction d'une liste de groupe.

    Je ne sais pas ce qu'est une vue "matérialisée" mais je vais me renseigner

    merci

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Résolu
    J'ai créé une autre table avec un trigger sur ma table notation

    Merci à tous

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

Discussions similaires

  1. trigger delete pour plusieurs lignes
    Par Shabata dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/09/2009, 01h00
  2. Trigger After au niveau instruction
    Par ze_patoche dans le forum Oracle
    Réponses: 2
    Dernier message: 18/10/2005, 12h33
  3. TRIGGER After Update
    Par Nounoursonne dans le forum Oracle
    Réponses: 8
    Dernier message: 20/07/2005, 13h33
  4. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  5. Trigger AFTER
    Par Maitre B dans le forum Développement
    Réponses: 2
    Dernier message: 11/06/2004, 09h56

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