|
| Trouver des doublons dans une table mémoire |
| Débuté par o_saidou, 19 nov. 2007 13:57 - 7 réponses |
| |
| | | |
|
| |
| Posté le 19 novembre 2007 - 13:57 |
Bonjour
J'ai une table mémoire (liste des paiements) dont une colonne comporte des données (codes contrats) qui se répètent.
Question : Quelle procédure peut on utiliser pour pouvoir avoir une liste distincte des codes contrats qui se répètent plus d'une fois dans ma colonne ?
Ceci dans le but par exemple d'effectuer des cumuls des paiements par contrat.
Je sais qu'avec le code SQL on arrive facilement à ce résultat, mais pour cela il faut interroger un fichier.
Dans mon cas, je ne pars pas d'un fichier existant.
Comment faire alors ?
Merci de vos contributions. |
| |
| |
| | | |
|
| | |
| |
| Posté le 19 novembre 2007 - 14:41 |
Bonjour, 1. Tu tries la table sur la colonne en question 2. Tu balaies la table, de la ligne 1 à l'avant-dernière ligne 3. Pour chaque ligne, si le code = celui de la ligne suivante => doublon. Dans ce cas, si le code en question n'est pas encore dans la liste (champ liste, varaible de type chaine...), tu l'ajoutes.
Pour plus d'informations, regarde l'aide de TableTrie, ChaineOccurrence (ou listecherche)...
Frédéric. |
| |
| |
| | | |
|
| | |
| |
| Posté le 19 novembre 2007 - 15:08 |
Said a exposé le 19/11/2007 :
Bonjour
J'ai une table mémoire (liste des paiements) dont une colonne comporte des données (codes contrats) qui se répètent.
Question : Quelle procédure peut on utiliser pour pouvoir avoir une liste distincte des codes contrats qui se répètent plus d'une fois dans ma colonne ?
Ceci dans le but par exemple d'effectuer des cumuls des paiements par contrat.
Je sais qu'avec le code SQL on arrive facilement à ce résultat, mais pour cela il faut interroger un fichier.
Dans mon cas, je ne pars pas d'un fichier existant.
Comment faire alors ?
Merci de vos contributions.
tablecherche(...) si je trouve alors tablemodifie(...) sinon tableajouteligne(...) fin
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
| Posté le 19 novembre 2007 - 22:38 |
Bonjour
Effectivement, en cherchant entre temps, voici la procédure que j'ai "montée" et qui pourrait intéresser certains :
PROCEDURE CalculerCumParCpte() i,j,nBlignes sont des entiers tabT2 est un tableau de 0 par 6 chaînes sListeTemp est une chaîne moDéb,moCréd sont des monétaires moDéb=0; moCréd=0 i=1;j=1
TableauAjouteLigne(tabT2,TABLE_1.COL_NumCpteDéb[1],TABLE_1.COL_LibCpteDéb[1],TABLE_1.COL_MDébit[1],TABLE_1.COL_NumCpteCréd[1],+... TABLE_1.COL_LibCpteCréd[1],TABLE_1.COL_MDébit[1]) sListeTemp=TABLE_1.COL_NumCpteDéb[1]
nBlignes=TableOccurrence(TABLE_1)
POUR i=2 A nBlignes SI ChaîneOccurrence(sListeTemp,TABLE_1.COL_NumCpteDéb[i])>0 ALORS moDéb=TABLE_1.COL_MDébit[i]+Val(tabT2[j,3]) moCréd=TABLE_1.COL_MCrédit[i]+Val(tabT2[j,6]) tabT2[j,3]=moDéb tabT2[j,6]=moCréd j++ SINON TableauAjouteLigne(tabT2,TABLE_1.COL_NumCpteDéb[i],TABLE_1.COL_LibCpteDéb[i],TABLE_1.COL_MDébit[i],TABLE_1.COL_NumCpteCréd[i],+... TABLE_1.COL_LibCpteCréd[i],TABLE_1.COL_MDébit[i]) j++ FIN sListeTemp+=","+TABLE_1.COL_NumCpteDéb[i] FIN
nBlignes=TableauOccurrence(tabT2)
POUR i=1 A nBlignes Trace(tabT2[i,1]+TAB+tabT2[i,2]+TAB+tabT2[i,3]+TAB+tabT2[i,6]) FIN
Merci et à bientôt. |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 novembre 2007 - 07:41 |
Bonjour, je vous propose une itération sur table triée :
Lig est un entier=1 Nlig est un entier = table1..occurrence MemeContrat est un booleen ContratRef est une chaine CumulContrat est un reel
Tabletrie("Table1","contrat") //trier d'abord la table memoire dans l'ordre des contrats
Tantque Lig<=Nlig ContratRef=contrat[lig] MemeContrat=vrai CumulContrat=0 Tantque Lig<=Nlig et MemeContrat CumulContrat+=colCA[Lig] Lig++ si Lig<=Nlig alors MemeContrat=(Contrat[Lig]=ContratRef) fin FIN
Trace ("Contrat N."+contratRef+" CA : "+CumulCA)
FIN
Bon dev. |
| |
| |
| | | |
|
| | |
| |
| Posté le 07 avril 2017 - 19:31 |
Salut à vous!
S'il vous plaît, j'ai une table qui contient des lignes identiques, comment peux-je les supprimées et garder une seule?
Merci de m'aidez |
| |
| |
| | | |
|
| | |
| |
| Posté le 10 avril 2017 - 08:51 |
Bonjour, Avec un tri, une boucle, une comparaison et une suppression ?
Frédéric.
"MOHAMED RACHADE" a écrit dans le message de groupe de discussion : 20177a2ac6fd1060b23c70b926c7d55ac98c@news.pcsoft.fr...
Salut à vous!
S'il vous plaît, j'ai une table qui contient des lignes identiques, comment peux-je les supprimées et garder une seule?
Merci de m'aidez |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 197 messages |
|
| Posté le 10 avril 2017 - 10:04 |
Bonjour, Il est impératif de trouver l'origine des doublons dans la table (à moins que ton programme ne serve qu'à la suppression des doublons) Cordialement |
| |
| |
| | | |
|
| | | | |
| | |
|