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 :

requête datediff en Mysql


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut requête datediff en Mysql
    Bonjour à tous, j'ai un problème comme cela, le résultat de ma requête affiche toujours null:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Immatricule, dateExacte, DATEDIFF( 
        'SELECT Immatricule, DatePointage, TypePointage 
        FROM pointage 
        WHERE TypePointage=SORTIE', 
        'SELECT Immatricule, DatePointage, TypePointage 
        FROM pointage WHERE TypePointage=ENTREE' 
    ) AS duree
    FROM pointage 
    ORDER BY DateExacte
    Pouvez-vous m'aider à identifier l'erreur ?

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Tes sous-requêtes doivent être entourées de parenthèses et non de quotes. Là elles sont juste traitées comme des chaines ..

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut nouvelle requete
    Et j'ai fait la modification comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT Immatricule, dateExacte, DATEDIFF(
        (SELECT Immatricule, DatePointage, TypePointage 
         FROM pointage WHERE TypePointage='SORTIE'), 
        (SELECT Immatricule, DatePointage, TypePointage 
         FROM pointage WHERE TypePointage='ENTREE')
    ) AS duree
    FROM pointage 
    ORDER BY DateExacte
    et il y a cette erreur:
    #1241 - Operand should contain 1 column(s)

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    C'est normal, tes sous-requêtes ne doivent renvoyer qu'une seule colonne (champ dans ton SELECT) de type DATE.

  5. #5
    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 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 019
    Points : 23 713
    Points
    23 713
    Par défaut
    Bonjour,

    Et si tu nous donnais le schéma de ta table, un petit exemple de son contenu et ce que tu souhaites faire ?
    Ça serait plus facile pour t'aider...
    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

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Voici la structure de la table:
    pointage
    Colonne			Type			Null	Défaut
    DatePointage		timestamp		Non	CURRENT_TIMESTAMP  	 
    TypePointage		varchar(200)		Non
    Immatricule		int(4)			Non
    DateExacte		varchar(10)		Non
    ID_Pointage		bigint(20)		Non
    up			int(2)			Non
    duree			int(11)			Non
    et dans la datepointage se trouvent toutes les dates, heures, minutes de pointage d'une personne. Mais pour pouvoir le calculer, il faut la différencier par le typepointage, qui ont pour valeur "entree" et "sortie".

  7. #7
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    C'est normal, tes sous-requêtes ne doivent renvoyer qu'une seule colonne (champ dans ton SELECT) de type DATE.

  8. #8
    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 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 019
    Points : 23 713
    Points
    23 713
    Par défaut
    Il faut passer par des jointures, pour n'avoir qu'une seule date d'entrée et de sortie par ligne dans la fonction DATEDIFF.
    Essaie la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT e.Immatricule, e.dateExacte, DATEDIFF(s.datePointage, e.datePointage) AS duree
    FROM pointage e
    INNER JOIN pointage s ON e.Immatricule = s.Immatricule AND s.typePointage = 'SORTIE'
    WHERE e.typePointage = 'ENTREE'
    ORDER BY e.dateExacte
    L'idée, c'est de faire une jointure entre les entrées (pointage avec l'alias e) et les sorties (pointage avec l'alias s) d'un même immatricule.
    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. Convertir une requête Acces en MySQL
    Par Creepy78 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 28/02/2006, 16h24
  2. Requête hyerarchique avec MySQL
    Par ingamo dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/02/2006, 21h39
  3. Requête sur DB mysql
    Par Lord_FEFF dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 09/11/2005, 19h16
  4. Equivalent a fonction DATEDIFF pour MySQL version 3.23
    Par npze dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/10/2005, 11h18
  5. Convertir une requête Access en MySQL
    Par iomega dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2004, 09h47

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