Bonjour à tous,

On a un petit problème de sélection que nous n'arrivons pas à régler. Un exemple valant plus que des paroles, voici ce que nous cherchons.

On a une table COMMANDE contenant les champs suivants :

NUMERO_CLIENT | REFERENCE | CODE_PRODUIT | STATUS   | DATE_COMMANDE |

1005500001    | BROYEUR01 | 15800A92007  | DELIVRE  | 12/04/2013    |
1005500001    | BROYEUR01 | 15800A92008  | DELIVRE  | 13/05/2013    |
1005500001    | BROYEUR01 | 15800A92009  | ENCOURS  | 24/06/2013    |
1005500001    | MIXEUR01  | 15800A92007  | DELIVRE  | 12/04/2013    |
1005500001    | MIXEUR01  | 15800A92008  | DELIVRE  | 14/05/2013    |
1005500001    | MIXEUR01  | 15800A92009  | ENCOURS  | 24/06/2013    |

1005500002    | BROYEUR01 | 15800A90025  | DELIVRE  | 12/04/2013    |
1005500002    | BROYEUR01 | 15800A97777  | DELIVRE  | 15/05/2013    |
1005500002    | BROYEUR01 | 15800A98174  | ENCOURS  | 24/06/2013    |
1005500002    | MIXEUR04  | 15800A90025  | DELIVRE  | 12/04/2013    |
1005500002    | MIXEUR04  | 15800A97777  | DELIVRE  | 16/05/2013    |
1005500002    | MIXEUR04  | 15800A98174  | ENCOURS  | 24/06/2013    |
Une vue est créée comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
create or replace view V1 as
  select 
    NUMERO_CLIENT
    REFERENCE
    CODE_PRODUIT
    STATUS
    DATE_COMMANDE
  from COMMANDE ;
Ce que nous voulons faire c'est récupérer la date minimum de commande pour chaque référence donnée et chaque n° client et ceci dans un intervalle
de date en utilisant obligatoirement la vue.

Par exemple, un select sur V1 where date_commande between 20/04/2013 et le 30/06/2013
qui me renverrait seulement les lignes suivantes :

1005500001    | BROYEUR01 | 15800A92008  | DELIVRE  | 13/05/2013    |
1005500001    | MIXEUR01  | 15800A92008  | DELIVRE  | 14/05/2013    |
1005500002    | BROYEUR01 | 15800A97777  | DELIVRE  | 15/05/2013    |
1005500002    | MIXEUR04  | 15800A97777  | DELIVRE  | 16/05/2013    |
c'est à dire la ligne contenant la date la plus petite par NUMERO_CLIENT et REFERENCE.

On a essayé des GROUP BY dans tous les sens mais ca ne marche jamais.

On ne peut pas utiliser de Procedures oracle car cette vue est utilisée dans un rapport YellowFin et donc aucune possibilité de faire des exec. Seules les fonctions peuvent être utilisées.

Merci d'avance pour votre aide.