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 et SQL. Discussion :

Requete de tri par N° de mois [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Requete de tri par N° de mois
    bonjour,

    je calcule des hrs de travail avec une requete
    j ai d abords une fonction qui me transforme mes hrs (qui sont au format numerique en hrs:mins)
    je fais ma requete sql en appelant la fonction


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM HrsNormales((Nz(Sum([T_Travaux].[TotHr]),"0"))*1440) AS SommeHrs
    SELECT T_Travaux.IdEmploye, HrsNormales((Nz(Sum([T_Travaux].[TotHr]),"0"))*1440) AS total
    FROM T_Travaux
    GROUP BY T_Travaux.IdEmploye
    PIVOT T_Travaux.Date_Travail;

    ça fonctionne tres bien pour les calculs
    je voudrais ajouter [entrez le n° du mois] pour avoir un tri par mois et de ce fait avoir le nbre d heures prestees par ouvrier sur le mois.
    et ce avec la petite fonction sympa datepart("m";[Date_Travail])=[Entrez le N° du mois]
    malheureusement j ai droit a un message pas sympa, pffffff
    par contre si je mets 12 dans le critere, là ça fonctionne bien, à n y rien comprendre.....
    voici donc le mot d amour d access: Le moteur de la base de données Microsoft Access ne reconnait pas "[Entrez....]" en tant que nom de champ ou expression correcte.

    voila voila, merci pour votre aide :-)

    Fab

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Essaye de décomposer
    tu mets datepart("m";[Date_Travail]) dans le nom du champ
    et tu mets [Entrez le N° du mois] dans le critère
    Frédéric
    Développeur d'Applications Access

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where month(datedetravail)=[entrez le numéro]
    Elle est pas belle la vie ?

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    hello,

    J'avais deja essayé la première solution (en entrant datepart dans le champ et la question dans critère et ça ne fonctionne pas)
    je viens d essayer avec month(Date_Travail)=....
    et j ai exactement la meme erreur.
    ce qui est étonnant c'est que quand je mets dans le nom du champ le DatePart.... et dans critère le N° du mois, là ça fonctionne
    cela aurait qqchose à avoir avec le fait que j ai un Group by ou le pivot de la table?
    merci pour vos réponses

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    cela aurait qqchose à avoir avec le fait que j ai un Group by ou le pivot de la table?
    Si c'est une requête analyse croisée, c'est normal sue cela ne fonctionne pas. En effet les analyses croisées ne supportent pas les critères paramétrés, sauf ..... si les entêtes de colonnes sont définis de façon précise dans les propriétés de la requète.
    Frédéric
    Développeur d'Applications Access

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    les requêtes analyses croisées supportent parfaitement les paramètres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PARAMETERS [entrez le mois] Short;
    TRANSFORM Sum(travail.heure) AS SommeDeheure
    SELECT travail.ouvrier
    FROM travail
    WHERE (((Month([datetr]))>=[entrez le mois]))
    GROUP BY travail.ouvrier
    PIVOT Month([datetr]);
    Elle est pas belle la vie ?

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    yes, ça fonctionne super, j ai ajouté un deuxième paramètre
    merci bcp pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    parameters [Entrez le N° du mois:] short, [Entrez l'année:] short;
    TRANSFORM MinToTime((Nz(Sum([T_Travaux].[TotHr]),"0"))*1440) AS SommeDeQuantité
    SELECT T_Travaux.IdEmploye, MinToTime((Nz(Sum([T_Travaux].[TotHr]),"0"))*1440) AS total
    FROM T_Travaux
    WHERE ((month([Date_Travail])) = [Entrez le N° du mois:]) and ((year([Date_Travail]))=[Entrez l'année:])
    GROUP BY T_Travaux.IdEmploye
    PIVOT T_Travaux.Date_Travail;

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

Discussions similaires

  1. requete sql données triées par mois
    Par italiano1360 dans le forum Zend_Db
    Réponses: 2
    Dernier message: 24/07/2012, 16h07
  2. Réponses: 3
    Dernier message: 07/09/2007, 15h29
  3. Requete de tri par mois
    Par Jay45 dans le forum Access
    Réponses: 1
    Dernier message: 03/04/2006, 13h57
  4. requete par rapport au mois
    Par tounsi dans le forum Oracle
    Réponses: 15
    Dernier message: 11/01/2006, 16h49
  5. requete : tri par date + groupement
    Par cbe dans le forum Requêtes
    Réponses: 8
    Dernier message: 08/01/2006, 19h30

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