Je suis en phase de codage d'une requête de suppression de doublon.
Je dispose d'une table FLUX :
FLU :
FLU_ID | PADT | CONTRAT | TYPE_FLU
1 A B C
2 A B C
5 M N O
10 M N O
11 M N O
80 X Y Z
85 M N O
et une d'une d'acheminement
ACH :
ACH_FLU_ID | DATA
1 | INFO_1
2 | INFO_2
5 | INFO_3
10 | INFO_4
Je souhaite mettre a jour ACH pr avoir :
ACH_FLU_ID | DATA
1 | INFO_1
1 | INFO_2
5 | INFO_3
5 | INFO_4
en les faisant pointer sur les FLU_ID de valeur minimale (car les autres lignes FLU_ID seront supprimées car il s'agit de doublon)
Explication : la clé de ACH est en fait la colonne DATA (je simplifie pr l'exemple) et la clé de FLU est en fait le triplet (PADT, CONTRAT, TYPE_FLU), les lignes 1 et 2 doivent pointer sur FLU_ID=1, pour que la base soit sous forme normale, et car FLU_ID=2 sera supprimé.
Je voudrais "juste" avoir la requête de mise a jour de ACH, depuis 2 jours je tourne en rond, et je ne vois pas comment m'en dépêtré...
J'ai déjà posté cette question, mais pas eu de réponse satisfaisante.
Merci pour votre aide.
# pfiou
Posté par gregolak . Évalué à 1.
T'aurais pas un script qui crée les tables
et les remplit avec ton exemple ? Parce qu'
écrire l'ordre comme ca dans le vide c'est
trop dur pour moi...
question subsidiaire : c'est quoi comme SGBD ?
[^] # Re: pfiou
Posté par Anonyme . Évalué à 2.
Dès que j'ai 5 mn je reviendrais poster les scripts.
[^] # Re: pfiou
Posté par snt . Évalué à 2.
[^] # Re: pfiou
Posté par Anonyme . Évalué à 2.
J'ai pu résoudre mon 1er pb, mais j'en ai d'autres maintenant.
Comment je peux faire pour virer les doublons d'une table qui a cette tête.
MY_TABLE :
MY_TABLE_ID [ COL1 | COL2 | COL3
1 | A | B | C
2 | A | B | C
3 | A | B | C
4 | A | B | C
Pour ne garder que la 1ere ligne :
MY_TABLE_ID | COL1 | COL2 | COL3
1 | A | B | C
La ligne à garder étant celle du MY_TABLE_ID minimum
Une idée ?
[^] # Re: pfiou
Posté par snt . Évalué à 2.
where (col1,col2,col3) in
( select col1,col2,col3 from my_table group by col1,col2,col3 having count(*)>1 )
and id not in ( select min(id) from my_table group by col1,col2,col3 having count(*)>1 )
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.