2013-04-17 5 views
-5

Ceci est le résultat de la requête précédente (select Well_Dprod_Date,Formation_Name from data_dprod).Requête sql dans Oracle

Well_Dprod_Date Formation_Name 
11/15/2002  BRF. 
11/16/2002  BRF. 
11/17/2002  BRF. 
11/18/2002  BRF. 
11/19/2002   BRF.  
11/20/2002   BRF.  
11/21/2002   BRF.  
11/22/2002   BRF.  
11/23/2002   BRF.  

Comment puis-je obtenir les résultats de la requête est la suivante:

Well_Dprod_Date Formation_Name 
11/15/2002   BRF.   
11/16/2002  
11/17/2002  
11/18/2002  
11/19/2002  
11/20/2002  
11/21/2002  
11/22/2002  
11/23/2002   BRF. 

Merci.

+0

Quelle est la logique derrière le deuxième résultat? – Taryn

+0

Vous devez expliquer la logique requise - pas la sortie attendue. Avez-vous besoin de lister le nom de la formation entre deux Well_Dprod_Dates continus? Est-ce une histoire de changements du nom de la formation avec la valeur actuelle listée? etc –

+0

Oui, j'ai besoin du nom de la formation en premier et du dernier du même nom de formation entre deux jours continus Well_Dprod_Dates. –

Répondre

0

Votre question est un peu ambiguë.Est-ce que vous voulez?

SELECT WELL_DPROD_DATE, 
     FORMATION_NAME, 
     CASE 
     WHEN R1 = 1 OR R2 = 1 THEN 
      FORMATION_NAME 
     ELSE 
      NULL 
     END AS FORMATION_NAME_F 
FROM (SELECT WELL_DPROD_DATE, 
      FORMATION_NAME, 
      RANK() OVER(PARTITION BY FORMATION_NAME ORDER BY WELL_DPROD_DATE ASC) AS R1, 
      RANK() OVER(PARTITION BY FORMATION_NAME ORDER BY WELL_DPROD_DATE DESC) AS R2 
      FROM DATA_DPROD) T 
+0

Merci beaucoup, c'est une question de travail :) –