Comment faire le regroupement sur la date

Résolu/Fermé
ERIC - 5 nov. 2020 à 14:58
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
- 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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
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
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171
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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
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
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171 > RV71
Messages postés
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022

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
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022

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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022

6 nov. 2020 à 10:58
Bonjour Je suis vraiment désolé d'avoir posé ma question sur deux forums
0
RV71
Messages postés
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022

6 nov. 2020 à 17:05
a rien il fo l'enlever
0
RV71
Messages postés
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
31 > ERIC
6 nov. 2020 à 17:07
Bah enlèves le et ça devrait aller mieux :)
0
ERIC > RV71
Messages postés
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022

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
507
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 juin 2022
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