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

 MySQL Discussion :

je bloque sur de simples requêtes SQL


Sujet :

MySQL

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut je bloque sur de simples requêtes SQL
    Bonjour,

    je suis débutant en SQL. J'aimerais savoir comment fait-on pour :
    1) récupérer la date de début et de fin de chaque numéro, par exemple
    3314: début=2012/09/01 12:00:00, fin=2012/09/01 12:03:00
    2) faire la somme des valeurs de 3314 puis diviser cette somme par 60

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    num	date               	valeur
    3314	2012/09/01 12:00:00	2200
    3314	2012/09/01 12:01:00	1500
    ...	...			...
    3314	2012/09/01 12:02:00	1754
    3314	2012/09/01 12:03:00	1981
    4776	2012/08/05 00:01:00	1800
    4776	2012/08/05 00:02:00	500
    ...	...			...
    4776	2012/08/05 00:03:00	70
    4776	2012/08/05 00:04:00	3700
    merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Pour ceci regardez du côté du GROUP BY : http://sqlpro.developpez.com/cours/sqlaz/ensembles/

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    Je t'aide un peu :
    Pour le 1) Tu vas avoir besoin d'un MIN(), d'un MAX() et d'un "GROUP BY"
    Pour le 2) Tu auras besoin de SUM() et d'un WHERE

    Si tu n'y arrives pas, post les requêtes que tu auras essayées.

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    Pour le 1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT num, Date 
    FROM (
               SELECT * 
               FROM `Pointages` 
               WHERE num = 3314) AS t WHERE Date = MAX(Date)
    J'ai obtenu l'erreur suivante:

    Invalid use of group function

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    j'ai trouvé pour le 1):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT num, min(Date), max(Date) AS MAX FROM Pointages GROUP BY num
    je me demande s'il y a moyen de fusionner le1) et le 2) dans une seule expression ...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    il te suffit de calculer la somme dans la requête que tu viens de donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT num, min(Date), max(Date) AS MAX FROM Pointages GROUP BY num
    ( sum(valeur) ).

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT num, min(Date) AS debutTs, max(Date) as finTs, sum(valeur) AS sommeVal FROM Pointages GROUP BY num
    Merci pour votre aide

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

Discussions similaires

  1. Question simple requête SQL
    Par parapluie dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/07/2010, 12h53
  2. [MySQL] Simple (?) Requête SQL
    Par OmnislashS dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 08/02/2010, 11h19
  3. Simple requête SQL.
    Par About dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2008, 05h12
  4. Pb sur SUM dans requête SQL exécutée sous VB
    Par MAKSIM dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/11/2006, 18h07
  5. Simple requête sql
    Par innova dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/11/2006, 13h33

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