PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Fusionner les doublons et en faire la somme
Fusionner les doublons et en faire la somme
Débuté par Fred2355, 09 avr. 2019 23:55 - 4 réponses
Membre enregistré
231 messages
Popularité : +7 (7 votes)
Posté le 09 avril 2019 - 23:55
Bonsoir,

Je pense que le titre est explicite.
Mais pour plus de clarté, voici le détail de mon propos.

J'ai un tableau de 3 colonnes: Reference, désignation, quantité. Ce tableau est un extrait des dossiers en cours, provenant de plusieurs sources.

Dans ce tableau j'ai des doublons dans les références.

Je souhaite pouvoir fusionner les références en doublons et en additionner les quantités.

Quelle méthode me recommandez vous?

Merci
Fred
Membre enregistré
54 messages
Popularité : +5 (5 votes)
Posté le 10 avril 2019 - 13:52
il suffit de trier le tableau par Reference
ensuite faire une boucle du genre
pour i=1 à la taille du tableau (nombre de lignes)-1
si Col_reference[tableau[i]] = col_reference[tableau[i+1]]
somme reference+= Col_quantités[tableau[i]]+Col_quantités[tableau[i+1]]
supprimer la ligne tableau[i+1]

Je n'ai pas Windev sous la main pour avoir le code exact, mais j’espère que ça t'aidera à avoir une idée :)
Membre enregistré
1 message
Posté le 20 juin 2021 - 17:01
bonsoir j'ai le méme problem ,pouvez vous s'il vous plait étre plus clair ,j'ai essayé votre methode mais ca na's par marché peut étre que je n'ai pas bien écrit le code
Membre enregistré
3 879 messages
Popularité : +227 (347 votes)
Posté le 20 juin 2021 - 21:44
Bonjour,
La fonction SUM fait très bien le boulot
SELECT
MaTable.PK_Table;
Sum(MaTable.Qté)
FROM
MaTable
GROUP by
MaTable.PK_Table


--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 879 messages
Popularité : +227 (347 votes)
Posté le 20 juin 2021 - 21:53
Cas concret on a la table ACHAT, on veut la valeur des achats par client
PK_Achat NomClient ValeurAchat DateAchat
1 Pierre 102 20201023
2 Simon 47 20201027
3 Marie 18 20201105
4 Marie 20 20201114
5 Pierre 160 20201203

SELECT
ACHAT.NomClient AS Client,
Sum(ACHAT.ValeurAchat) AS Total
FROM
ACHAT
GROUP by
ACHAT.NomCLient


On obtient
Client Total
Marie 38
Pierre 262
Simon 47

--
Il y a peut être plus simple, mais, ça tourne