Fonction de agrégation et suppression
Salut à tous !
J'utilise Mysql 5.0
J'ai un problème de requête. Cela fait deux mois que je galère dessus en SQL.
Du coup, j'ai décidé de faire une fonction qui me rendrait les même résultats.
Le problème est que je ne connais pas bien la structure de ce langage.
Donc toute proposition est la bienvenue !
Le problème est le suivant :
Quand Id_prod=id_prod
et
nucdli=nu_doc
alors je fais la somme des deux ligne
Ensuite j'efface la ligne ou se trouvait nucdli et je mets mon résultat dans la ligne ou il y a le nu_doc
Pour expliciter ma requête, voici le jeu de données suivant :
Attention, ce tableau présente une seule et même table séparés par un trait rouge .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| |id_prod |ty_doc|nu_doc|nucdli|px_com|id_prod|ty_doc |nu_doc | nucdli |px_com
+---------+--------+--------+--------+--------+---------+--------+--------+-----
| A | BE |13604 | NULL | 4 | E | CDC | 13661 | 13604 | 3 | |
| A | BE |13604 | NULL | 4 | B | CDC | 13361 | 13604 | 2 | |
| A | BE |13604 | NULL | 4 | E | CDT | 13360 | 13604 | 1 | |
| C | CDA |13604 | NULL | 3 | E | CDT | 13360 | 13604 | 1 | | |
| C | CDA |13604 | NULL | 3 | E | CDC | 13661 | 13604 | 3 | |
| C | CDA |13604 | NULL | 3 | B | CDC | 13361 | 13604 | 2 | |
| D | CDA |13604 | NULL | 3 | E | CDC | 13661 | 13604 | 3 | |
| D | CDA |13604 | NULL | 3 | B | CDC | 13361 | 13604 | 2 | |
| D | CDA |13604 | NULL | 3 | E | CDT | 13360 | 13604 | 1 | |
| E | FA | 444 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | |
| E | BE | 555 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | |
| E | CDA |13604 | NULL | 2 | E | CDC | 13661 | 13604 | 3 | |
| E | CDA |13604 | NULL | 2 | B | CDC | 13361 | 13604 | 2 | |
| E | CDA |13604 | NULL | 2 | E | CDT | 13360 | 13604 | 1 | |
+---------+--------+--------+--------+--------+---------+--------+------ |
Voici le résultat attendu :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
|id_prod |ty_doc|nu_doc|nucdli|px_com|id_prod|ty_doc |nu_doc | nucdli |px_com
+---------+--------+--------+--------+--------+---------+--------+--------+-----
| A | BE |13604 | NULL | 4 |
| A | BE |13604 | NULL | 4 | B | CDC | 13361 | 13604 | 2 | |
| A | BE |13604 | NULL | 4 |
| C | CDA |13604 | NULL | 3 | |
| C | CDA |13604 | NULL | 3 |
| C | CDA |13604 | NULL | 3 | B | CDC | 13361 | 13604 | 2 | |
| D | CDA |13604 | NULL | 3 |
| D | CDA |13604 | NULL | 3 | B | CDC | 13361 | 13604 | 2 | |
| D | CDA |13604 | NULL | 3 | | |
| E | FA | 444 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | |
| E | BE | 555 | NULL | 1 | NULL | NULL | NULL | NULL | NULL | |
| E | CDA |13604 | NULL | 12 | |
| E | CDA |13604 | NULL | 6 | B | CDC | 13361 | 13604 | 2 | |
| E | FA |13604 | NULL | 6 | |
+---------+--------+--------+--------+--------+---------+--------+------ |
Merci d'avance pour votre aide