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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as mni
SQL>
SQL> drop table t_commande
2 /
Table dropped
SQL> create table t_commande (
2 commande varchar2(10),
3 statut varchar2(1)
4 )
5 /
Table created
SQL> insert ALL
2 into t_commande Values(commande, status)
3 Select 'COM01' commande, 'I' status From dual Union All
4 Select 'COM02' commande, 'R' status From dual Union All
5 Select 'COM03' commande, 'R' status From dual Union All
6 Select 'COM03' commande, 'R' status From dual Union All
7 Select 'COM04' commande, Null status From dual Union All
8 Select 'COM04' commande, 'R' status From dual
9 /
6 rows inserted
SQL> commit
2 /
Commit complete
SQL> Select * from t_commande
2 /
COMMANDE STATUT
---------- ------
COM01 I
COM02 R
COM03 R
COM03 R
COM04
COM04 R
6 rows selected
SQL> Update t_commande
2 set statut = 'R'
3 Where (statut != 'R' Or statut Is Null)
4 And commande In (Select commande
5 From t_commande t1
6 Group By commande
7 Having Count(*) > 1
8 And min(Nvl(statut,'I')) != 'R'
9 )
10 /
1 row updated
SQL> Select * from t_commande
2 /
COMMANDE STATUT
---------- ------
COM01 I
COM02 R
COM03 R
COM03 R
COM04 R
COM04 R
6 rows selected
SQL> |