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 :

erreur sur une requête AVG DIFF


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 26
    Points
    26
    Par défaut erreur sur une requête AVG DIFF
    Bonjour,

    sur mon ancien serveur ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT abc, AVG(DATEDIFF(date_1, date)) 
    FROM table WHERE etat = '7' and date_1 != '0000-00-00' and date <= date_1 and date >= '2005-01-01' and date <= '2005-12-31' GROUP BY abc
    fonctionnait aprfaitement

    sur mon nouveau serveur, phpmyadmin me donne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    requête SQL: 
     
    SELECT abc, AVG( DATEDIFF(
     
    date_1, date
    ) ) 
    FROM table WHERE etat = '7'
    AND date_1 != '0000-00-00'
    AND date & lt ; = date_1
    AND date & gt ; = '2005-01-01'
    AND date & lt ; = '2005-12-31'
    GROUP BY abc
    LIMIT 0 , 30

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #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 '( date_1 , date ) )  FROM table WHERE etat = '7' and date_1 != '0000-00-00' a' at line 1
    est-ce un problème de jeux de caractères ??? car il me tarnsforme les ! et < > !!!!

    merci

    ps : je suis en mysql 4.1.20


    PS : quand je teste la requête sans le champ abc, et sans le group by, cela fonctionne nickel

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    C'est pas très recommandé de nommer une table `table` et une colonne de type date `date`, mais bon.
    Essaye comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT abc, 
               AVG( DATEDIFF(date_1, `date`) ) 
    FROM `table` 
    WHERE etat = '7'
    AND `date` BETWEEN '2005-01-01' AND '2005-12-31'
    AND `date` <= date_1
    GROUP BY abc
    LIMIT 0 , 30
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    non même dans la requête suivante ca plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT abc, AVG(DATEDIFF(date_1, date))
    FROM table
    WHERE etat = '7' 
    and date_1 != '0000-00-00' 
    and date<= date_1 
    GROUP BY abc
    par contre cette requête fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT AVG(DATEDIFF(date_1, date)) 
    FROM table
    WHERE etat = '7'
    and date_1 != '0000-00-00'
    table, c'est un exemple, la table ne s'apelle pas comme ca mais tb01

    on dirait que le problème vient du GROUP BY !!

    je précise que ça marchait bien sur mon ancien serveur ou j'avais MySql 4.1.22

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    j'ai changé le champ date dans ma BD et j'ai mis date_dem, mais le problème reste idem

  5. #5
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Peux-t-on voir la structure exacte de la table sur laquelle porte cette requête ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/01/2020, 09h34
  2. [MySQL] erreur sur une requète
    Par mattyeux dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/01/2008, 21h25
  3. [SQL] Erreur sur une requète avec un Like
    Par heruwenli dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h29
  4. [VBA] Erreur sur une requête avec un opérateur
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2006, 17h12
  5. Réponses: 8
    Dernier message: 01/03/2005, 16h01

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