Problème de requête SQL-Oracle

Problème de requête SQL-Oracle - SQL/NoSQL - Programmation

Marsh Posté le 01-06-2006 à 14:23:59    

Bonjour,
 
voilà la requête qui ne pose pb :
 

Code :
  1. select w.c_current_rating, w.c_previous_rating, 
  2.               (select n.RANG_MOOD from r_note_ref_mo n where n.C_RATING_MOOD(+) = w.C_CURRENT_RATING) CURRENT_RANK,
  3.               (select n.RANG_MOOD from r_note_ref_mo n where n.C_RATING_MOOD(+) = w.C_PREVIOUS_RATING) PREVIOUS_RANK,
  4.                    
  5.                    case
  6.                       when CURRENT_RANK > PREVIOUS_RANK then 'DNG'
  7.                       when CURRENT_RANK < PREVIOUS_RANK then 'UPG'
  8.                       when CURRENT_RANK = PREVIOUS_RANK then Null
  9.                       else
  10.                          null
  11.                    end
  12.            
  13.        from       rdt_fs_histo_mo_w w


 
 
Pourquoi est ce que "PREVIOUS_RANK" n'est pas reconnu ?
 
Merci de votre aide!

Reply

Marsh Posté le 01-06-2006 à 14:23:59   

Reply

Marsh Posté le 01-06-2006 à 16:47:48    

Tu ne peux pas utiliser les alias de même niveau.
 
Fais une sous-requête :
 

Code :
  1. select c_current_rating,
  2.        c_previous_rating,
  3.        CURRENT_RANK,
  4.        PREVIOUS_RANK,
  5.        case
  6.          when CURRENT_RANK > PREVIOUS_RANK then 'DNG'
  7.          when CURRENT_RANK < PREVIOUS_RANK then 'UPG'
  8.          when CURRENT_RANK = PREVIOUS_RANK then Null
  9.          else null
  10.        end
  11. from (select w.c_current_rating,
  12.              w.c_previous_rating, 
  13.              (select n.RANG_MOOD from r_note_ref_mo n where n.C_RATING_MOOD(+) = w.C_CURRENT_RATING) CURRENT_RANK,
  14.              (select n.RANG_MOOD from r_note_ref_mo n where n.C_RATING_MOOD(+) = w.C_PREVIOUS_RATING) PREVIOUS_RANK
  15.       from   rdt_fs_histo_mo_w w);

Reply

Marsh Posté le 01-06-2006 à 18:31:45    

waouh :)  
Merci bcp, ça fonctionne super bien! :)

Reply

Marsh Posté le 02-06-2006 à 15:36:42    

vaut mieux regarder du coté des fonctions analytique comme DENSE_RANK ou LEAD :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed