krovomi | Bonjour,
J'ai un petit problème par rapport à une requête que j'ai récupéré de MySQL, et que je dois faire passer sous Oracle.
La requête sous MySQL est la suivante :
Code :
- SELECT *,
- IF(critere_aller = 'depart', DATE_FORMAT(date_depart, '%d/%m/%Y'), DATE_FORMAT(date_arrivee, '%d/%m/%Y')) as date_depart_fr,
- IF(critere_aller = 'depart', date_depart, date_arrivee) as date_depart,
- IF(critere_aller = 'depart', DATE_FORMAT(h_depart, '%H'), DATE_FORMAT(h_arrivee, '%H')) as h_depart,
- IF(critere_aller = 'depart', DATE_FORMAT(h_depart, '%i'), DATE_FORMAT(h_arrivee, '%i')) as min_depart,
- IF(retour = 'oui', if (critere_retour = 'depart', DATE_FORMAT(date_depart_retour, '%d/%m/%Y'), DATE_FORMAT(date_arrivee_retour, '%d/%m/%Y')), 'AS') as date_retour_fr,
- IF(retour = 'oui', if (critere_retour = 'depart', DATE_FORMAT(h_depart_retour, '%H'), DATE_FORMAT(h_arrivee_retour, '%H')), 'AS') as h_retour,
- IF(retour = 'oui', if (critere_retour = 'depart', DATE_FORMAT(h_depart_retour, '%i'), DATE_FORMAT(h_arrivee_retour, '%i')), 'AS') as min_retour
- FROM mis_vols
- WHERE id_mission = 56984
- ORDER BY date_depart
|
Celle-ci marche parfaitement sous MYSQL, et quand j'exécute celle-ci sous PL/SQL Developer, j'ai une erreur ORA-00923 qui signifie que le FROM est mal placé :
Code :
- SELECT *,
- IF(critere_aller = 'depart', TO_CHAR(date_depart, 'dd/mm/yyyy'), TO_CHAR(date_arrivee, 'dd/mm/yyyy')) as date_depart_fr,
- IF(critere_aller = 'depart', date_depart, date_arrivee) as date_depart,
- IF(critere_aller = 'depart', TO_CHAR(h_depart, 'hh24'), TO_CHAR(h_arrivee, 'hh24')) as h_depart,
- IF(critere_aller = 'depart', TO_CHAR(h_depart, 'mi'), TO_CHAR(h_arrivee, 'mi')) as min_depart,
- IF(retour = 'oui', if (critere_retour = 'depart', TO_CHAR(date_depart_retour, 'dd/mm/yyyy'), TO_CHAR(date_arrivee_retour, 'dd/mm/yyyy')), 'AS') as date_retour_fr,
- IF(retour = 'oui', if (critere_retour = 'depart', TO_CHAR(h_depart_retour, 'hh24'), TO_CHAR(h_arrivee_retour, 'hh24')), 'AS') as h_retour,
- IF(retour = 'oui', if (critere_retour = 'depart', TO_CHAR(h_depart_retour, 'mi'), TO_CHAR(h_arrivee_retour, 'mi')), 'AS') as min_retour
- FROM mis_vols
- WHERE id_mission = 56984
- ORDER BY date_depart
|
J'ai essayé de chercher pour trouver un tutorial expliquant les conditions dans un select mais je ne trouve pas.
Quelqu'un connaitrait la raison du non fonctionnent de la requête sous Oracle ?
Merci d'avance. Message édité par krovomi le 19-05-2008 à 12:51:48
|