Comment faire le regroupement sur la date

Résolu
Bonjour,
J'ai un code de ma requête qui me permet de connaitre des entrées et des sorties de mon stock.
Ma question 1: comment faire en sorte qu'il ne m'affiche pas une date plusieurs fois? donc pas des doublons des dates mais je veux juste voir les totaux des entrées, des sorties et une date.

question 2: je veux qu'il me me demande a chaque fois de mettre "datebebut" et "datefin"

Quelqu'un peut-il m'aider svp?

voici mon code SQL:

TRANSFORM Nz(Sum(Mouvements.Qtecommande),0) AS SommeDeQtecommande
SELECT produits.Designation, produits.QteStock, Mouvements.DateMov
FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
GROUP BY produits.Designation, produits.QteStock, Mouvements.DateMov
PIVOT Mouvements.TypeMov;

4 réponses

  1. Bonjour,

    Je vais te faire exactement la même réponse qu'il y a 30 minutes sur un autre forum :-)

    <copier / coller>

    là tu fais un regroupement par produits.Designation, produits.QteStock et Mouvements.DateMov. Donc tu obtiens autant de ligne qu'il y a de désignation et de qtestock différentes pour une meme datemov... Si tu veux uniquement 1 date et un total, enlèves les champs designation et qtestock de ton regroupement.
    D'ailleurs c'est quoi ce champ QteStock ?????? On ne stocke pas ce genre d'info, il faut le calculer à la demande avec une requête...

    Pour le 2/ il suffit de mettre dans la clause WHERE

    WHERE mouvements.datemov BETWEEN [saisir date debut] AND [saisir date fin]
    .

    Mais généralement on utilise un formulaire (f1 dans l'exemple ci-après) avec 2 controles indépendants, un pour la date début (ctrldatedebut tjrs exemple après), un pour la date fin (ctrldatefin idem), et on mets ces controles dans la clause WHERE. C'est plus joli et pratique pour l'utilisateur.
    WHERE mouvements.datemov Between [formulaires]![f1]![ctrldatedebut] And [Formulaires]![f1]![ctrldatefin]

    A+
    0
    1. Contributeur
      bonjour, peux-tu nous informer quand tu poses la même question dans un autre forum?
      ce serait plus respectueux.
      merci.
      0
      1. A priori il a posé la question ici à 14h58 et sur l'autre forum à 15h17 ;-)
        Mais bon, j'espère au moins qu'il viendra du coup donner un retour sur les 2 forums :)))
        0
      2. Contributeur
        @RV71cela me semble correct de prévenir ici quand il poste ailleurs, pour éviter qu'on travaille pour rien.
        0
      3. @yg_beBonjour.
        Je m'excuse vraiment pour ça. Je ne ferait plus jamais ça. Merci pour cette remarque
        0
      4. @RV71Bonjour Je suis vraiment désolé d'avoir posé ma question sur deux forums
        0
    2. On va dire que tu as maximisé tes chances d'obtenir une réponse :)

      Alors, en parlant de réponse, as-tu lu et mis en oeuvre ?

      A+
      0
      1. Vous me dites d'enlèver les champs designation et qtestock de mon regroupement. je vient d'essayer mais ca ne fonctionne pas. comment le faire concretement? pouvez-vous m'aider a le faire? Notez que je veux que la designation aussi s'affiche. (donc designation, datemov, entree, sortie)

        TRANSFORM Nz(Sum(Mouvements.Qtecommande),0) AS SommeDeQtecommande
        SELECT produits.Designation, produits.QteStock, Mouvements.DateMov
        FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
        GROUP BY produits.Designation, produits.QteStock, Mouvements.DateMov
        PIVOT Mouvements.TypeMov;
        0
      2. @ERICBonjour,

        le champ SteStock sert à quoi ? (dans la table et dans la requête du coup)

        Tu obtiens quoi là (capture) et tu souhaiterais quoi ?

        a+
        0
      3. @RV71a rien il fo l'enlever
        0
      4. @ERICBah enlèves le et ça devrait aller mieux :)
        0
      5. @RV71voici alors le nouveau code:
        TRANSFORM Nz(Sum(Mouvements.Qtecommande),0) AS SommeDeQtecommande
        SELECT produits.Designation, Mouvements.DateMov
        FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
        GROUP BY produits.Designation, Mouvements.DateMov
        PIVOT Mouvements.TypeMov;

        voici une image en piece jointe de ce que ca donne. ( https://www.cjoint.com/c/JKgqvtsjNIc ) pas bon pour moi. moi je veux par designation une date une entree et une sortie (total entree total sortie)
        0
    3. Je n'avais pas fait attention pour la question à poser avant d'ouvrir la requête.
      En analyse croisée, obligé de créer des paramètres dans la requête, ce qui donne :
      PARAMETERS [saisir une date de début] DateTime, [saisir une date de fin] DateTime;
      TRANSFORM Nz(Sum(Mouvements.Qtecommande),0) AS SommeDeQtecommande
      SELECT produits.Designation, Mouvements.DateMov
      FROM produits INNER JOIN Mouvements ON produits.IdProduit = Mouvements.IdProduit
      WHERE Mouvements.DateMov Between [saisir une date de début] And [saisir une date de fin]
      GROUP BY produits.Designation, Mouvements.DateMov
      PIVOT Mouvements.TypeMov;


      Voici lien https://www.cjoint.com/c/JKgrfFagxPU

      A+
      0