Bonjour à tous,
On m'a exposé un petit problème et j'avoue avoir du mal à le résoudre... du reste je ne sais pas si c'est possible !
J'explique :
J'ai une table maTable avec les données suivantes :
A 1
B 1
C 2
D 2
E 1
F 2
En une requête je dois obtenir :
A 1
C 2
E 1
F 2
La logique est la suivante, je parcours ma table et lorsque la valeur de la deuxième colonne est différente de celle de la ligne précédente, j'affiche ma ligne, sinon je continue.
Cela demande donc de pouvoir comparer pour chaque ligne les données de la ligne précédente....
J'ai d'abord eu comme info que la table avait un id "classique" entier auto-incrémenté, j'avais donc écrit la requête suivante qui fonctionnait très bien
Super
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT table2.col1, table2.col2 FROM maTable AS table2 LEFT OUTER JOIN maTable AS table1 ON table2.id = table1.id + 1 WHERE table2.col2 <> table1.col2 ORDER BY table2.col1
Sauf que.... on m'a dit après coup que l'id de la table pouvait être alphanumériqueDu coup ma requête ne fonctionne plus...
J'ai pensé recréer les id de façon dynamique (avec un row_number()) mais cela ne fonctionne pas... du moins je n'y arrive pas.
J'ai un script qui fonctionne bien en passant par l'intermédiaire de tables temporaires mais ils voudraient pouvoir le faire en une seule requête
Quelqu'un pourrait-il m'aider ??
Merci.
Partager