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

Access Discussion :

Afficher la date de la dernière commande


Sujet :

Access

  1. #1
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut Afficher la date de la dernière commande
    Salut,

    Je voudrais comprendre sur un problème sur une requête.

    En fait, sur une table "Fournisseur Articles Commandés", j'ai les champs suivants :

    - CODE_ARTIC
    - DATE_CDE
    - PRIX_MARCH EURO

    Je voudrais afficher le prix et la date de dernière commande pour l'article "x".

    Lorsque je fais une requête de regroupement, il faut que j'utilise l'agrégat "Premier" pour que je puisse obtenir le bon résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT [Fournisseur Articles Commandés].CODE_ARTIC, First([Fournisseur Articles Commandés].DATE_CDE) AS PremierDeDATE_CDE, [Fournisseur Articles Commandés].[PRIX_MARCH EURO], [Fournisseur Articles Commandés].PRIX_MARCH
    FROM [Fournisseur Articles Commandés]
    GROUP BY [Fournisseur Articles Commandés].CODE_ARTIC, [Fournisseur Articles Commandés].[PRIX_MARCH EURO], [Fournisseur Articles Commandés].PRIX_MARCH
    HAVING ((([Fournisseur Articles Commandés].CODE_ARTIC)="1400-0010-INC0003") AND ((First([Fournisseur Articles Commandés].DATE_CDE))<=#12/31/2006#))
    ORDER BY First([Fournisseur Articles Commandés].DATE_CDE) DESC;
    Je ne parviens pas à comprendre pourquoi First et non last ?

    Quelqu'un peut-il m'expliquer ?

    Merci

  2. #2
    seb92400
    Invité(e)
    Par défaut
    Je ne maitrise pas encore sql, mais il est inscrit DESC à la fin de ta requête... Ce qui je crois signifie que tu commences ta recherche par la fin... Et donc, le premier de la fin est le dernier...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu effectue un tri dans l'ordre décroissant des dates, donc le premier en haut de la liste est la date de la derniére commande.

    Si tu fais un tri croissant la date la plus élevé (donc la dernière commande) sera en bas, donc il faudra prendre le dernier.

    Starec

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    tu peux utiliser Max.

    A+

  5. #5
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    Merci pour vos réponses, mais je suis toujours embêté pour ma requête, car ça ne donne pas le résultat que je veux. J'ai donc procédé ainsi :

    A partir de la table d'origine, j'ai créé une table "Test" comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CODE_ARTIC
    DATE_CDE
    PRIX_MARCH
    Dans cette table, j'ai créé la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Test.CODE_ARTIC, Test.DATE_CDE, Test.[PRIX_MARCH EURO]
    FROM Test
    WHERE (((Test.CODE_ARTIC)="1400-0010-INC0003") AND ((Test.DATE_CDE)<=#12/31/2006#))
    ORDER BY Test.DATE_CDE DESC;
    Celle-ci me ramène bien mes enregistrements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    1400-0010-INC0003 | 29/11/2006 | 8,121400-0010-INC0003 | 29/11/2006 | 8,121400-0010-INC0003 | 20/11/2006 | 8,10
    et ainsi de suite.

    Ce que je veux, maintenant, c'est à partir de cette requête, ou d'une autre, qu'elle me ramène uniquement la 1ère ligne de ces enregistrements, sans les autres, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1400-0010-INC0003 | 29/11/2006 | 8,12
    Sachant que le 29/11/06 est la dernière date de 2006 !

    et ça, je ne parviens pas le faire !

    J'ai tenté de créer une requête imbriquée mais ça ne marche pas, ou même avec la fonction Max de regroupement, celle-ci me ramène... rien !

    Est-ce que vous pouvez m'aider ?

    Merci par avance.

  6. #6
    seb92400
    Invité(e)
    Par défaut
    Une requête de sélection te retourne un échantillon d'enregistrement selon les critères que tu sélectionnes.

    Donc, si ta requête est bonne, tu obtiens toutes les commandes passées le dernier jour (info que tu recherches). Ensuite, tu peux eventuellement faire un regroupement ou sélectionner un enregistrement dans ton code.

  7. #7
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Test.CODE_ARTIC, Test.DATE_CDE, Test.[PRIX_MARCH EURO]
    FROM Test INNER JOIN [select  Test.CODE_ARTIC,Max(Test.DATE_CDE) as datemax from Test GROUP BY Test.CODE_ARTIC]. AS t ON (Test.DATE_CDE= t.datemax) AND (Test.client = t.client);
    A+

Discussions similaires

  1. [AC-2007] Requête date de la dernière commande
    Par denisduval75 dans le forum Access
    Réponses: 2
    Dernier message: 07/03/2015, 17h45
  2. [MySQL] Afficher la date de dernière MAJ du site
    Par zorbo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/01/2009, 17h50
  3. afficher dernière commande
    Par Stéph utilisateur d'acces dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/12/2008, 15h47
  4. Réponses: 3
    Dernier message: 17/07/2007, 15h21
  5. [VBA]Coment afficher la date de l'année dernière
    Par gyzmo5 dans le forum Access
    Réponses: 4
    Dernier message: 23/01/2006, 15h11

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