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

Requêtes MySQL Discussion :

Utiliser un paramètre à partir d'une autre table


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 40
    Points : 26
    Points
    26
    Par défaut Utiliser un paramètre à partir d'une autre table
    Bonjour,

    Je viens juste de débuter en SQL et je bute sur une question simple, comment utiliser un paramètre stocké dans une autre table lorsque l'on réalise des opérations de soustractions entre lignes d'une même colonne?

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT Max_Jour_Tbl.Date_Max as 'Date', Max_Jour_Tbl.Max_Jour as 'Index Max', Min_Jour_Tbl.Min_Jour as 'Index Min', Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour as 'Consommation Jour', (Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour)/1000*PrixKWh.tarifBASE as 'Cout'
    FROM 
    (SELECT rec_date as 'Date_Max', rec_time as Time_Max, max(BASE) as Max_Jour
    FROM compteur1
    WHERE rec_date=date(now())) as Max_Jour_Tbl
    LEFT JOIN 
    (SELECT rec_date as 'Date_Min', rec_time as Time_Min, min(BASE) as Min_Jour
    FROM compteur1
    WHERE rec_date=date(now())) as Min_Jour_Tbl
    LEFT JOIN
    (Select tarifBASE
    From parametres) as PrixKWh
    ON Max_Jour_Tbl.Date_Max=Min_Jour_Tbl.Date_Min
    Et le message d'erreur est lui :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 13
    Si quelqu'un pouvait m'aiguiller se serait super sympa.

    D'avance merci de votre aide... précieuse.

    Cordialement.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Il suffit d'indenter correctement votre requete pour voir qu'il manque une condition de jointure.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Bonjour

    Merci beaucoup je pensais que le dernier ON suffisait pour finir la jointure.

    Par contre, du coup, je ne comprend pas ce qui cloche. lors que je balance la requête suivante pour vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tarifBASE
          FROM parametres
    j'obtiens bien
    tarifBASE
    0.1329
    maintenant je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT Max_Jour_Tbl.Date_Max AS 'Date', Max_Jour_Tbl.Max_Jour AS 'Index Max', Min_Jour_Tbl.Min_Jour AS 'Index Min', Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour AS 'Consommation Jour', PrixKWh.tarifBASE AS  'PrixKWh', (Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour)/1000*PrixKWh.tarifBASE AS 'Cout'
    FROM 
            (SELECT rec_date AS 'Date_Max', rec_time AS Time_Max, max(BASE) AS Max_Jour
            FROM compteur1
            WHERE rec_date=date(now())) AS Max_Jour_Tbl
    LEFT JOIN 
           (SELECT rec_date AS 'Date_Min', rec_time AS Time_Min, min(BASE) AS Min_Jour
           FROM compteur1
           WHERE rec_date=date(now())) AS Min_Jour_Tbl
    ON Max_Jour_Tbl.Date_Max=Min_Jour_Tbl.Date_Min
    LEFT JOIN
          (SELECT tarifBASE
          FROM parametres) AS PrixKWh
    ON PrixKWh.tarifBASE
    et j'obtiens la valeur NULL pour le paramètre de cout...

    Date / Index Max / Index Min / Consommation Jour / PrixKWh / Cout
    2014-09-24 / 6485301 / 6478058 / 7243 / NULL / NULL
    Je ne comprends pas trop ce que je fais de mal

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    oulala que je suis couillon pour pas dire autre chose

    c'est bon c'était ma condition ON qui était mauvaise
    avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT Max_Jour_Tbl.Date_Max AS 'Date', Max_Jour_Tbl.Max_Jour AS 'Index Max', Min_Jour_Tbl.Min_Jour AS 'Index Min', Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour AS 'Consommation Jour', PrixKWh.tarifBASE AS 'PrixKWh', (Max_Jour_Tbl.Max_Jour-Min_Jour_Tbl.Min_Jour)/1000*PrixKWh.tarifBASE AS 'Cout'
    FROM 
            (SELECT rec_date AS 'Date_Max', rec_time AS Time_Max, max(BASE) AS Max_Jour
            FROM compteur1
            WHERE rec_date=date(now())) AS Max_Jour_Tbl
    LEFT JOIN 
           (SELECT rec_date AS 'Date_Min', rec_time AS Time_Min, min(BASE) AS Min_Jour
           FROM compteur1
           WHERE rec_date=date(now())) AS Min_Jour_Tbl
    ON Max_Jour_Tbl.Date_Max=Min_Jour_Tbl.Date_Min
    LEFT JOIN
          (SELECT tarifBASE
          FROM parametres) AS PrixKWh
    ON PrixKWh.tarifBASE=PrixKWh.tarifBASE
    ça marche impec

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

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32
  3. remplir un champ d'une table à partir d'une autre table
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/02/2005, 16h48
  4. Réponses: 5
    Dernier message: 06/01/2005, 12h07
  5. Réponses: 3
    Dernier message: 09/07/2004, 10h23

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