Bonjour,
Voici une table T contenant les valeurs suivantes :
Je cherche la requête qui va me ramener tous les ID1 qui contiennent au moins les mêmes ID2 que ID1=1 (c'est à dire au moins 10,11,12)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 ID1 ID2 ---------- ---------- 1 10 1 11 1 12 2 20 2 21 2 22 3 30 3 31 3 32 4 10 4 11 4 12 5 10 5 11 5 12 5 13 6 10 6 11 7 10 7 11 7 13
Concrètement, je voudrais ramener :
Mes tests (non concluants) sont basés sur cette requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ID1 ---------- 4 5
En y rajoutant des clause where pour éliminer certains enregistrements, mais rien de concluant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 select distinct T1.ID1,T2.ID2 from T T1,T T2 where T2.ID2=T1.ID2 and T2.ID1=1 and T1.ID1<>1; ID1 ID2 ---------- ---------- 4 10 4 11 4 12 5 10 5 11 5 12 6 10 6 11 7 10 7 11
Si ça peut aider voici le script de création :
D'avance merci pour toute idée/remarque ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 create table "T" ( ID1 decimal(22), ID2 decimal(22) ); insert into T (ID1,ID2) values (1,10); insert into T (ID1,ID2) values (1,11); insert into T (ID1,ID2) values (1,12); insert into T (ID1,ID2) values (2,20); insert into T (ID1,ID2) values (2,21); insert into T (ID1,ID2) values (2,22); insert into T (ID1,ID2) values (3,30); insert into T (ID1,ID2) values (3,31); insert into T (ID1,ID2) values (3,32); insert into T (ID1,ID2) values (4,10); insert into T (ID1,ID2) values (4,11); insert into T (ID1,ID2) values (4,12); insert into T (ID1,ID2) values (5,10); insert into T (ID1,ID2) values (5,11); insert into T (ID1,ID2) values (5,12); insert into T (ID1,ID2) values (5,13); insert into T (ID1,ID2) values (6,10); insert into T (ID1,ID2) values (6,11); insert into T (ID1,ID2) values (7,10); insert into T (ID1,ID2) values (7,11); insert into T (ID1,ID2) values (7,13);
Jean-Baptiste.
nb : je suis sur Oracle 10G
Partager