fusion de tuples - SQL/NoSQL - Programmation
Marsh Posté le 29-12-2003 à 15:02:08
Si c'est juste 1 fois (manip à la main) :
(sinon faut faire un script PL/SQL ou une procédure)
Tu récupères les codart dans une table :
create table tmp as select codart from table group by codart having count(*)>1 ;
ensuite tu crées les enregistrements dans une table 2
create table tmp2 as select codart, champ1, champ2, ..., sum(champ_a_somme) from table where codart in (select codart from tmp) group by codart, champ1, champ2, ... ;
ensuite tu effaces les enreg de ta table
delete table where codart in (select codart from tmp) ;
ensuite tu réintègres les données sommées
insert into table (codart, champ1, champ2, ..., champ_a_somme) select * from tmp2 ;
et pour finir un
commit ;
Voilà, ca devrait faire l'affaire. N'oublie pas de champs en route...
L'idéal si tu as peur de faire une bétise c'est avant tout de faire un
create table save as select * from table ;
Marsh Posté le 29-12-2003 à 16:04:22
logiquement, y'a un sum() aussi dans la première requête pour faire la somme.
Marsh Posté le 29-12-2003 à 16:09:52
MagicBuzz a écrit : logiquement, y'a un sum() aussi dans la première requête pour faire la somme. |
d'où le create table tmp2 as select codart, champ1, champ2, ..., sum(champ_a_somme)
Marsh Posté le 29-12-2003 à 16:16:32
Je suis d'accord, mais c'est pour bien expliquer, comme ça étape par étape on voit tout ce qui va bien...
au fait comment on fait italique et gras déjà comme balises ?
Marsh Posté le 29-12-2003 à 17:26:38
[ b ] et [ i ]
enfin... dans le forum ?
si c'est pour le HTML, c'est pareil, mais des < et > à la place des [ et ] En SQL on peut pas
sinon, au lieu d'utiliser "réponse rapide", utilise plutôt le bouton "répondre", comme ça t'as les titi boutons jolis qui font les tags tous seuls comme des grands quand tu cliques dessus
Marsh Posté le 29-12-2003 à 17:51:37
bill.fr a écrit : Si c'est juste 1 fois (manip à la main) : |
Ok tres bien ! tout a fait daccord bill.fr.
Il me faut donc faire une procédure stockée qui fait tout ça ....
c'est pas du gateau!
merci
Marsh Posté le 29-12-2003 à 14:48:06
Hello,
Je voudrais fusionner des doublons.
Cad:
Faire la somme des valeurs de chacun des doublons.
Supprimer les doublons pour n'avoir qu'un tuple unique avec cette somme calculée.
je connais les champs sur lesquels il y a des doublons grace à la requete suivante:
"SELECT codart FROM table group by codart having count(*)>1"
Merci