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

Langage SQL Discussion :

Regroupement par tranches horaires


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Regroupement par tranches horaires
    Bonjour a tous et à toutes,

    Mon SQL est un peu rouiller, et je ne trouve pas la requête pour :

    J'ai une table avec des id de véhicule et une heure d'arrivée, et je souhaite faire la somme des véhicule par tranches horaires (tranches qui ne figurent pas dans ma table).

    Id Car Heure arrivée
    V1 1700
    V2 1800
    V3 2000

    Résultat souhaité
    < 16h00 entre16h00 et 17h00 entre 17h00 et 18h00 etc...
    0 1 1

    Merci d'avance

  2. #2
    Membre du Club Avatar de zin_rbt
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    Bonsoir,

    et si tu passes par une table temporaire temp composée de 2 colonnes
    (id , tranche ) où seront stockés les enregistrements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INSERT INTO temp (
    SELECT id ,'tr1'   FROM TATABLE WHERE heureArrive> 12 and heureArrive<= 13 
    union
    SELECT id ,'tr2'  FROM TATABLE WHERE heureArrive> 13 and heureArrive<= 14
    union
    ...
    )
    et pour avoir ton groupement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tranche, COUNT(*) FROM temp GROUP BY tranche
    il y a peut être de meilleures solutions ,mais là au moins tu seras débloqué

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 392
    Points
    28 392
    Par défaut
    L'utilisation de CASE est incontournable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  SUM(CASE WHEN heure_arrivee < 1600 THEN 1 ELSE 0 END) AS avant_16h00
        ,   SUM(CASE WHEN heure_arrivee >= 1600 AND heure_arrivee < 1700 THEN 1 ELSE 0 END) AS de_16h00_à_17h00
        ,   ...
    FROM    matable

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour votre aide rapide.
    J'ai une nouvelle Question, mes données sont sur As/400 que je viens attaquer par ms query et la fonction SUM ne semble pas marcher. Serai ce du au fait que mes données soient en alpha numerique ????

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Non, la somme se fait sur le résultat du CASE, donc 1 si la condition est vérifiée et 0 sinon.
    Montrez nous la requête que vous avez essayée et l'eventuel message d'erreur, ce sera plus simple.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    En fait comme la requête proposée ne marchais pas, j'ai essayé une plus "basique" à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT SUM(MAH90) FROM ma table
    Résultat : utilisation incorrect de SUm (erreur 0402)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Je viens de tester sur une autre colonne (int) et la requête passe, donc ma question évolue comment faire un SUM sur de l'alpha ???

    Merci encore pour votre aide

  8. #8
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par orl10 Voir le message
    Je viens de tester sur une autre colonne (int) et la requête passe, donc ma question évolue comment faire un SUM sur de l'alpha ???
    Effectivement, pas évident l'addition de chaines de caractères

    Relisez les messages de Snipah, il faut utiliser CASE.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/03/2009, 19h43
  2. Calcul d'heures par tranche horaire
    Par A0080 dans le forum Excel
    Réponses: 11
    Dernier message: 05/03/2008, 14h19
  3. regroupement par tranche horaire
    Par Tiresia dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2007, 10h50
  4. Récupérer des enregistrements par tranche horaire
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/05/2006, 16h53
  5. Regroupement par tranche dans une requete SQL (MS SQL)
    Par AODRENN dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/03/2006, 13h21

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