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 Procédural MySQL Discussion :

fonction pour comparer


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Par défaut fonction pour comparer
    bonjour,
    j'ai utilisé une fonction qui sert a parcourir une champ d'une colonne "intervenants" qui contient des noms séparé par virgules .
    l'objectif est comparer les noms par des noms stockées dans une table "intervenant",ce dernier est composé par deux colonnes :"id_équipe"(contient le nom de l'équipe auquelle appartient un nom d'intervenant) et "nom_intervenant"(contient les listes des noms) .
    .Donc , l'objectif est de comparer les noms par des noms stockées dans la table "intervenant" .Si le résultat est positive , on prend les étapes présenté dans le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    delimiter |
    CREATE FUNCTION DETERMINE1234(s VARCHAR(2000)) RETURNS int(2)
    DETERMINISTIC
           BEGIN
                   DECLARE open  INT;
                   DECLARE close  INT;
                   DECLARE someLimit  INT;
                   DECLARE cpt int;
                   DECLARE cs int;
                   DECLARE cm int;
                   DECLARE co int;
                   DECLARE str  VARCHAR(255);
                   DECLARE toFind  VARCHAR(2000);
                   SET open = 1;
                   SET close = 1;
                   SET cpt=0;
                   SET cs=0;
                   SET cm=0;
                   SET co=0;
                   SET toFind = s ;
                   SET someLimit = 5;
                   SET str ='';
                   WHILE close > 0 and open > 0 and someLimit > 0 DO
                     SET someLimit = someLimit -1;
                       SET toFind = SUBSTRING(toFind,open);
                       SET close = locate(',',toFind);
                       IF close > 2 THEN
                          SET str =SUBSTRING(toFind,2,close-2);
                          IF (Select id_equipe from intervenant where nom_intervenant=str='Deploiement Radio') OR 
                             (Select id_equipe from intervenant where nom_intervenant=str='Optimisation Huawei')OR
                             (Select id_equipe from intervenant where nom_intervenant=str='Optimisation NSN') OR
                             (Select id_equipe from intervenant where nom_intervenant=str='Support BSS Nord') OR
                             (Select id_equipe from intervenant where nom_intervenant=str='Support BSS Sud') THEN SET co=1;
                          END IF;
                          IF (Select id_equipe from intervenant where nom_intervenant=str='QDF') OR
                             (Select id_equipe from intervenant where nom_intervenant=str='Supervision Back Office') THEN SET cs=1;
                          END IF;
                          IF (Select id_equipe from intervenant where nom_intervenant=str='Maintenance') THEN SET cm=1; 
                          END IF;
                          SET toFind = SUBSTRING(toFind,close);
                       END IF;
                   END WHILE;
                   SET cpt=co+cs+cm;
                   return cpt;
     
           END |
    delimiter;
    voila la requete sql que j'ai utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update incident set groupes_intervenants=DETERMINE12(intervenants) WHERE Status like 'Closed'
    le résultat va etre stocké dans le colonne "groupes_intervenants".
    merci d'avance.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Et quel est le problème qui justifie la publication de cette discussion ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Par défaut
    merci pour votre réponse. le problème est qu'il n'y a pas de résultats stockés dans le colonne "groupes_intervenants", toujours 0 par défaut.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Euh...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE FUNCTION DETERMINE1234
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set groupes_intervenants=DETERMINE12
    Vous ne voyez pas comme un problème, là ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 132
    Par défaut
    je m'execuse , j'ai posté la réquete sql erroné. voila la requete sql que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update incident set groupes_intervenants = DETERMINE1234 (intervenants) WHERE Status like 'Closed'

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

Discussions similaires

  1. [Tableaux] Une fonction pour comparer deux tableaux ?
    Par renaud26 dans le forum Langage
    Réponses: 5
    Dernier message: 20/06/2009, 11h11
  2. Fonction pour comparer des caractères au numérique
    Par Spinoza23 dans le forum Débuter
    Réponses: 38
    Dernier message: 08/04/2008, 17h21
  3. fonction pour comparer des nombres
    Par insa59 dans le forum Débuter
    Réponses: 5
    Dernier message: 21/06/2007, 10h34
  4. Réponses: 1
    Dernier message: 10/09/2006, 16h09

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