Personne ne m'a raconté de telles inepties ... C'était juste une certitude venue de nul part mais qui me paraissait logique.
Dans ma réponse précédente quand je vous ai dit que ça ne fonctionnait pas, c'est que j'avais pris déja le temps de faire ce que vous m'aviez demandé ... Mais, peut-être ne nous sommes nous pas compris ...
En fait, je ne peux pas faire un ORDER BY global puisque le but est de séparer mon bloc de résultat en deux parties bien distinctes :
- Avant J+3, critère de tri = date puis priorité
- Après, critère de tri = priorité puis date
Donc, dans mon idée (fausse d'ailleurs), je pensais que le UNION me renverrait le résultat de la première vue suivie du résultat de la seconde vue. Hors, ce n'est pas la solution puisque tout se mélange (postulat de base faux). Je cherchais donc quelque chose qui puisse ajouter à mes vues un compteur de ligne tel que :
1 2 3 4 5 6 7 8
| VUE1
DateLiv Priorite Compteur
----------- ------- ---------
05/10/2006 10 1
05/10/2006 100 2
06/10/2006 20 3
06/10/2006 110 4
07/10/2005 110 5 |
1 2 3 4 5 6 7 8
| VUE2
DateLiv Priorite Compteur
----------- ------- ---------
10/10/2006 110 10001
11/10/2006 110 10002
10/10/2006 100 10003
25/10/2006 20 10004
09/10/2005 10 10005 |
qui me permettrait dans mon UNION de faire
select * from
(select * from VUE1
UNION
select * from VUE2)
ORDER BY Compteur
et donc d'obtenir le résultat suivant :
1 2 3 4 5 6 7 8 9 10 11 12
| DateLiv Priorite Compteur
----------- ------- ---------
05/10/2006 10 1
05/10/2006 100 2
06/10/2006 20 3
06/10/2006 110 4
07/10/2005 110 5
10/10/2006 110 10001
11/10/2006 110 10002
10/10/2006 100 10003
25/10/2006 20 10004
09/10/2005 10 10005 |
Qu'en pensez-vous ? Comment puis-je faire ?
Partager