Bonjour,
Tout d'abord je tiens à préciser que je n'ai pas du tout l'habitude d'utiliser Oracle. ( J'ai juste fait quelques tests aujourd'hui)
Par deux fois cet après midi, j'ai eu un problème avec des requêtes de tests qui ne donnaient pas le bon résultat.
Les deux fois, le résultat est devenu correct après avoir exporté (sous sql Developper), supprimé puis récréé la table avec exactement le script de l'export. ( Les tables des deux tests sont différentes)
Les deux requêtes étaient de ce type (Je sais que ça ne ressemble à rien, mais ce n'est pas pour ça que le résultat ne doit pas être correct...) :
Avant recréation table (KO):
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 SELECT idTest15,test15Array,test15Long,test15Int FROM test15_master INNER JOIN ( SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM ( SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM test15_master GROUP BY test15Array, test15Long UNION SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM test15_master GROUP BY test15Array, test15Long ) GROUP BY test15Array, test15Long ) USING ( test15Array,test15Long,test15Int)
IDTEST15 TEST15ARRAY TEST15LONG TEST15INT
-------- ----------- ---------- ---------
2 user1 100 2
4 user2 100 2
Apres avoir recréer la table (OK):
IDTEST15 TEST15ARRAY TEST15LONG TEST15INT
-------- ----------- ---------- ---------
3 user2 50 1
1 user1 10 1
4 user2 100 2
2 user1 100 2
Quelqu'un a t'il une idée du pourquoi ?
Merci pour votre aide.
Au cas ou voici deux requêtes avec leur résultats (OK) que j'ai obtenu lorsqu'il y avait le problème.
Resultat OK :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT idTest15,test15Array,test15Long,test15Int FROM test15_master INNER JOIN ( SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM ( SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM test15_master GROUP BY test15Array, test15Long ) GROUP BY test15Array, test15Long ) USING ( test15Array,test15Long,test15Int)
IDTEST15 TEST15ARRAY TEST15LONG TEST15INT
-------- ----------- ---------- ---------
3 user2 50 1
1 user1 10 1
4 user2 100 2
2 user1 100 2
Resultat OK :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM ( SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM test15_master GROUP BY test15Array, test15Long UNION SELECT test15Array, test15Long, MAX(test15Int) AS test15Int FROM test15_master GROUP BY test15Array, test15Long ) GROUP BY test15Array, test15Long
TEST15ARRAY TEST15LONG TEST15INT
----------- ---------- ---------
user1 10 1
user2 100 2
user1 100 2
user2 50 1
Partager