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 :

Création requête d'une commande valable pour plusieurs années


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Création requête d'une commande valable pour plusieurs années
    Bonjour à tous, je suis un débutant sur access et je cherche à créer une requête qui me donne le nb d'article commandé/mois pendant un certains nombre d'année.

    Ex: un client passe une commande de 20 articles/mois pendant 5 ans à partir du 05/2007, donc la commande prend fin en 05/2012

    Cette requête est destinée à créer un graphique pour visualiser le nombre d'article commandé/mois/ans.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Je ne comprends pas le sens de ta question.

    Ex: un client passe une commande de 20 articles/mois pendant 5 ans à partir du 05/2007, donc la commande prend fin en 05/2012
    Comment sont organisées tes données ? Pour moi, si j'ai bien compris ta question, il s'agit simplement d'un champ calculé : 20 articles x 12 mois x 5 ans... Mais ce ne doit pas être cela

    Un peu de précision STP
    Gabout

  3. #3
    Membre actif
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Points : 227
    Points
    227
    Par défaut
    Si je comprends bien ta question
    tu voudrais connaître le nbre de commande passé par un client
    sur un laps de temps (en année) précis...

    il faut que tu géres un datawarehouse, càd, que tu géres un historique de tes commandes...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,
    Citation Envoyé par leglod Voir le message
    je suis un débutant sur access et je cherche à créer une requête qui me donne le nb d'article commandé/mois pendant un certains nombre d'année.
    Pour un débutant c'est déjà "costaud"...Et ça nous fais travailler!
    On peut essayer genre :
    Pièce jointe 23264
    Pour ceci :
    Une table-->tblClients
    IDAchat-------------NuméroAuto Clef Primaire
    DateCommande------Date/Heure Date, abrégé
    CommandeMois------Numérique Entier long (Et pour monsieur, ce sera combien par mois?)
    PrixUnitaire----------Monétaire Format # ##0,00" €";"- "# ##0,00" €" (Je suis joueur..)
    Client---------------Texte
    Nb_Mois-------------Numérique (Vous avez dit pendant une durée de?)

    Une table -->TblCount
    Id-----------NuméroAuto Clef Primaire
    Champ------Texte(Peu importe)

    Cette TblCount doit avoir un minimum de champs correspondant
    à la plus forte commande possible. Seul va servir le champ ID
    Le second champ servira juste lors de l'incrémentation.

    Voir : http://access.developpez.com/faq/?page=TAEtat#multEnreg

    On crée un formulaire frmTestDate sur lequel on incorpore deux champs:

    Datedebut--->Valeur par défaut --> #01/01/1950#
    DateFin----->Valeur par défaut --> #30/12/2050#

    Une première requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT tblClients.IDAchat, tblClients.DateCommande, tblClients.CommandeMois, 
        tblClients.PrixUnitaire, tblClients.Client, tblClients.Nb_Mois,
        DateAdd("m",[Nb_Mois],[DateCommande]) AS Dernier_Mois, [Client] & " " &
        [CommandeMois] & " colis Pendant " & [Nb_Mois] & " mois = " & [MontantCommande] 
        & " €" AS CommandClient, TblCount.Id, DateAdd("m",[Id],[DateCommande]) AS [A Livrer le],
        tblClients.CommandeMois, [CommandeMois]*[PrixUnitaire] AS MontantCommande
    FROM tblClients, TblCount
    WHERE (((tblClients.DateCommande)>[Formulaires]![frmTestDate]![Datedebut]) 
        AND ((DateAdd("m",[Nb_Mois],[DateCommande]))
        <[Formulaires]![frmTestDate]![DateFin]) AND ((TblCount.Id)<=[Nb_Mois]));
    Une seconde requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TRANSFORM Count(qry_Clients.IDAchat) AS CompteAchat
    SELECT qry_Clients.CommandClient, Format([A Livrer le],"yyyy") AS AnLivraison
    FROM qry_Clients
    GROUP BY qry_Clients.CommandClient, Format([A Livrer le],"yyyy"), 
       qry_Clients.[A Livrer le]
    ORDER BY Format([A Livrer le],"yyyy")
       PIVOT Format([A Livrer le],"mmm") In
     ("Janv","Févr","Mars","Avr","Mai","Juin","Juil","Août","Sept","Oct","Nov","Déc");
    Sans oublier :
    Dans les propriétés de la requête==> En-têtes des colonnes :
    "Janv";"Févr";"Mars";"Avr";"Mai";"Juin";"Juil";"Août";"Sept";"Oct";"Nov";"Déc"

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut plus de précision
    Bonjour à tous,

    En fait, je souhaite connaître mois/mois le nb d'article en commande avec à ma diposition le nb d'article commandé, la date de la première commande (mois/année) et la durée de la commande (en année).

    A partir de ces 3 informations, je souhaite réaliser une requete pour créer un graphique pour visualiser le nb d'article en commande mois/mois.

    Ex : 5 article en commande
    date de commande : 01/2008
    durée de la commande : 1 ans
    A partir de ceci j'ai la date de la dernière commande cad le 01/2009.

    Donc la requete doit me donner ceci :
    01/2008 : 5 articles
    02/2008 : 5 articles
    03/2008 : 5 articles
    04/2008 : 5 articles
    ....
    01/2009 : 5 articles

    Merci d'avance pour votre aide

    Bonne année à tous

    Cordialement

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Tu n'indiques pas quel est ton résultat actuel. Ce qui permettrait de savoir à quel endroit reprendre.
    Donc je fais comme si tu avais été jusqu'au bout et réalisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TRANSFORM Count(qry_Clients.IDAchat) AS CompteAchat
    SELECT qry_Clients.CommandClient, Format([A Livrer le],"yyyy") AS AnLivraison
    FROM qry_Clients
    GROUP BY qry_Clients.CommandClient, Format([A Livrer le],"yyyy"),
     qry_Clients.[A Livrer le]
    ORDER BY Format([A Livrer le],"yyyy")
    PIVOT Format([A Livrer le],"mmm") In
     ("Janv","Févr","Mars","Avr","Mai","Juin","Juil","Août","Sept","Oct","Nov","Déc");
    Ce qui doit t'indiquer "1" pour chaque mois ou 1 client passe une commande.
    Ce que tu désires c'est le nombre de colis pour chaque client chaque mois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TRANSFORM Sum(qry_Clients.CommandeMois) AS [A livrer]
    SELECT qry_Clients.CommandClient, Format([A Livrer le],"yyyy") AS AnLivraison
    FROM qry_Clients
    GROUP BY qry_Clients.CommandClient, Format([A Livrer le],"yyyy"),
     qry_Clients.[A Livrer le]
    ORDER BY Format([A Livrer le],"yyyy")
    PIVOT Format([A Livrer le],"mmm") In
     ("Janv","Févr","Mars","Avr","Mai","Juin","Juil","Août","Sept","Oct","Nov","Déc");
    Et toujours sans oublier :
    Dans les propriétés de la requête==> En-têtes des colonnes :
    "Janv";"Févr";"Mars";"Avr";"Mai";"Juin";"Juil";"Août";"Sept";"Oct";"Nov";"Déc"

    Cordialement.

    Ps:
    Lorsque nous aidons quelqu'un, c'est avec plaisir.
    Etre sollicité par message privé, estompe ce plaisir.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Résolu
    Bonjour,


    Merci pour ton aide précieuse francishop, le code que tu m'a transmis fonctionne très bien.

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

Discussions similaires

  1. [Lazarus] Syntaxe d'une commande locate pour plusieurs champs
    Par ovni76 dans le forum Lazarus
    Réponses: 3
    Dernier message: 02/07/2009, 14h33
  2. Réponses: 7
    Dernier message: 01/02/2006, 15h49
  3. [MS-DOS] Une commande DOS pour convertir un texte en OEM
    Par Furius dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 30/12/2005, 19h47
  4. [MS-DOS] Une commande DOS pour activer les mises à jour auto
    Par Furius dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 02/12/2005, 16h21
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

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