Bonjour à tous,


Cela fait des mois que je parcours le forum et je vous remercie tous pour toutes ces informations où on n'a même pas besoin de poser de questions complémentaire tellement les réponses sont précises.

Un prestataire m'a solutionné mon problème mais je ne connaissait pas cette syntaxe où on fait un SELECT <nom_table>
Je l'ai relu plusieurs fois et je n'arrive pas à comprendre pourquoi ça fonctionne en me retournant les valeurs effectivement en anomalie.
Les LKLO sont en anomalie quand l'ordre des dates en CDECL ne concorde pas avec le rang en CRNG

Ce n'est pas de la magie mais je là je n'arrive pas saisir la subtilité. Pouvez-vous m'expliquer pourquoi ça fonctionne ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT DISTINCT lklo
FROM  kcntloc l
WHERE EXISTS  ( SELECT 1
                FROM  kcntloc l2
                WHERE l2.lklo = l.lklo
                AND   l2.ctct = l.ctct
                AND   l2.cdecl < l.cdecl
                AND   l2.crng > l.crng )
AND   ctct IN ( 'L', 'A' )
Jeux de donnée où le rang (CRNG) n°8 est arrivé avant le rang n°7 (voir date en CDECL)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CTCT	CNCT		LKLO	CRNG	CDECL		CDPCL		MCDP	CDSCL
L	2415		AF17	1	01/03/78	28/02/96	DE	28/02/96
L	9500490		AF17	2	01/03/96	31/10/96	CH	31/10/96
L	9500856		AF17	3	01/11/96	31/03/99	DE	31/03/99
L	9900152		AF17	4	01/05/99	09/08/11	DE	09/08/11
L	3200049		AF17	5	01/03/12	08/03/12	DE	31/03/12
L	3200149		AF17	6	01/07/12	21/02/13	DE	21/03/13
L	3300117		AF17	8	23/05/13	01/12/14	DE	02/03/15
L	3500009		AF17	7	03/03/15
Résultat du SQL :