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 :

[SQL Server 2005] nombre de trajet pour chaque jour, pour chaque conducteur


Sujet :

Langage SQL

  1. #1
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut [SQL Server 2005] nombre de trajet pour chaque jour, pour chaque conducteur
    Bonjour à tous.

    Soit une table simple nommée T_Trajet contenant:
    1 champ datetime nommé MaDate représentant une date et heure d'un trajet
    1 Champ int nommé IdConducteur représentant l'identifiant du conducteur.

    Cette table reçoit une enregistrement à chaque fois qu'un conducteur effectue un trajet.

    Je cherche à connaitre le nombre de trajet pour chaque jour, pour chaque conducteur.

    J'ai beau retourner le problème dans tous les sens, et vu que j'ai beaucoup de mal avec la manipulation du type de donnée datetime, je n'arrive pas à pondre la requête qui va bien.

    Quelqu'un a t'il une idée pour me sortir de la panade?

    Merci de votre aide.

    (Pour info, c'est une requete sur SQL Server 2005)

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Ca doit ressembler à quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select MaDate, idConducteur, count(*) 
      from T_Trajet 
     group by MaDate, idConducteur

  3. #3
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut
    Malheureusement , si ça avait été aussi simple, j'en serai déjà sorti. Cette requête telle que tu la propose me renvoie un count à 1, ce qui est normal vu que la date est une date entière comprenant jour mois année heure minute seconde. Et il me faut faire un tri par jour, et non par date à proprement parler.

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Donc il te suffit d'appliquer au champ "Madate" une fonction de transtypage permettant d'en extraire les données souhaitées, et la requête de pc75 fonctionnera comme tu le souhaites.

    Avec SQL Server, je ne sais pas le faire, essaye avec un

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    vouay, Xo me l'a enlevé de la bouche (ou des doigts, mais ça n'est pas sale), tu dois forcément avoir dans SQLServer (que je ne connais pas, mais dans le forum approprié ils doivent savoir eux..) une fonction qui te permet d'extraire la date de ton champ datetime. En informix, l'opérateur de transtypage c'est le ::, mais nul doute qu'il doit y avoir l'équivalent en sqlserver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select idconducteur,madate::date,count(*)
    from t_trajet
    group by 1,2

  6. #6
    Membre confirmé Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Points : 458
    Points
    458
    Par défaut
    Finalement, c'est ce que j'ai fait. J'ai converti mes date en texte (vu que je n'ai pas trouvé de format de date courte), et tout a fonctionné comme prévu.

    Merci de votre aide à tous.

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

Discussions similaires

  1. [SQL SERVER 2005]créer un trigger pour chaque table de chaque DB
    Par Kropernic dans le forum Développement
    Réponses: 14
    Dernier message: 23/02/2010, 12h56
  2. [SQL Server 2005]Nombre de caractères d'une chaîne
    Par @yoyo dans le forum Développement
    Réponses: 3
    Dernier message: 22/04/2009, 14h50
  3. Réponses: 2
    Dernier message: 08/11/2006, 12h39
  4. Sauvegarde SQL-Server 2000 pour restauration SQL-Server 2005
    Par Harny dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/10/2006, 11h06
  5. Réponses: 0
    Dernier message: 13/06/2006, 16h11

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