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 :

Utilisation de variables SQL dans une requête


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut Utilisation de variables SQL dans une requête
    Bonjour à tous,

    J'ai une requête SQL faisant appel à une variable que je n'arrive pas à exécuter...
    Malgré avoir lu la doc MySQL et pas mal planché sur le sujet je n'arrive toujours pas à saisir où se situe le problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT SUM(l.MkVal) AS sumVal 
    FROM ligne_attrib_titre l 
    WHERE l.id_titre = '5902941';
     
    SET @sumValue := sumVal;
    SELECT (SELECT @sumValue)/3.0;
    La première ligne donne bien le résultat attendu.
    Néanmoins, à l'exécution de la deuxième ligne, l'erreur levée par l'outil MySQL Query Browser est la suivante:
    Unknown column 'sumVal' in 'field list'

    Merci pour votre coup de main!

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    L'assignation se fait dans le SELECT, pas après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT @sumValue:=SUM(l.MkVal) AS sumVal 
    FROM ligne_attrib_titre l 
    WHERE l.id_titre = '5902941';
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    L'assignation se fait dans le SELECT, pas après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT @sumValue:=SUM(l.MkVal) AS sumVal 
    FROM ligne_attrib_titre l 
    WHERE l.id_titre = '5902941';
    ced
    Merci pour votre rapide réponse, j'obtiens effectivement un résultat:
    1342319140.3404 pour être exact.

    Simplement la ligne suivante ne marche pas du coup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (SELECT @sumValue)/3.0;
    Car cela me retourne un résultat "null".

    (de même pour: SELECT @sumValue/3.0; )

    Merci encore pour votre aide.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Un seul SELECT suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT @sumValue / 3.0;
    Bien sûr, il faut supprimer la ligne intermédiaire dans ta première série de requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @sumValue := sumVal;
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    Oui, j'ai naturellement supprimé la deuxième ligne et la requète est comme cela actuellement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT @sumValue:=SUM(l.MkVal) AS sumVal 
    FROM ligne_attrib_titre l 
    WHERE l.id_titre = '5902941';
     
    SELECT @sumValue/3.0;
    Et toujours le résultat null retourné à l'exécution de la deuxième ligne (et ce malgré un résultat numérique retourné par la première).

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Avec quoi exécutes-tu ce code ? Dans un client MySQL ? Dans une commande PHP ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. Utiliser une variable PL/SQL dans une requête
    Par maxwell86 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 10/12/2008, 09h34
  2. [SQL] insérer des variables php dans une requête sql
    Par lili38 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 22/06/2007, 16h38
  3. Utilisation de variable Builder dans une requete SQL
    Par _ben_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/06/2007, 11h36
  4. [SQL] Comment insérer une variable php dans une requête SQL ?
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/05/2007, 08h47
  5. Appeler une variable VB dans une requête SQL
    Par Chopper dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/09/2006, 14h27

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