Comment faire le regroupement sur la date

Résolu/Fermé
ERIC - 5 nov. 2020 à 14:58
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 - 6 nov. 2020 à 18:38
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

RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
Modifié le 5 nov. 2020 à 17:34
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
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
5 nov. 2020 à 21:44
bonjour, peux-tu nous informer quand tu poses la même question dans un autre forum?
ce serait plus respectueux.
merci.
0
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
5 nov. 2020 à 21:56
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
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477 > RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024
6 nov. 2020 à 09:22
cela me semble correct de prévenir ici quand il poste ailleurs, pour éviter qu'on travaille pour rien.
0
Eric > yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024
6 nov. 2020 à 10:55
Bonjour.
Je m'excuse vraiment pour ça. Je ne ferait plus jamais ça. Merci pour cette remarque
0
Eric > RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024
6 nov. 2020 à 10:58
Bonjour Je suis vraiment désolé d'avoir posé ma question sur deux forums
0
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
6 nov. 2020 à 13:42
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
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
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31 > ERIC
6 nov. 2020 à 17:03
Bonjour,

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
ERIC > RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024
6 nov. 2020 à 17:05
a rien il fo l'enlever
0
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31 > ERIC
6 nov. 2020 à 17:07
Bah enlèves le et ça devrait aller mieux :)
0
ERIC > RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024
6 nov. 2020 à 17:22
voici 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
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
6 nov. 2020 à 18:09
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