Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1480 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][Oracle] Problème requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][Oracle] Problème requete

n°1733573
krovomi
Posté le 19-05-2008 à 10:32:30  profilanswer
 

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 :
  1. SELECT  *,
  2.               IF(critere_aller = 'depart', DATE_FORMAT(date_depart, '%d/%m/%Y'), DATE_FORMAT(date_arrivee, '%d/%m/%Y')) as date_depart_fr,
  3.               IF(critere_aller = 'depart', date_depart, date_arrivee) as date_depart,
  4.               IF(critere_aller = 'depart', DATE_FORMAT(h_depart, '%H'), DATE_FORMAT(h_arrivee, '%H')) as h_depart,
  5.               IF(critere_aller = 'depart', DATE_FORMAT(h_depart, '%i'), DATE_FORMAT(h_arrivee, '%i')) as min_depart,
  6.               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,
  7.               IF(retour = 'oui', if (critere_retour = 'depart', DATE_FORMAT(h_depart_retour, '%H'), DATE_FORMAT(h_arrivee_retour, '%H')), 'AS') as h_retour,
  8.               IF(retour = 'oui', if (critere_retour = 'depart', DATE_FORMAT(h_depart_retour, '%i'), DATE_FORMAT(h_arrivee_retour, '%i')), 'AS') as min_retour
  9.       FROM mis_vols
  10.       WHERE id_mission = 56984
  11.       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 :
  1. SELECT  *,
  2. IF(critere_aller = 'depart', TO_CHAR(date_depart, 'dd/mm/yyyy'), TO_CHAR(date_arrivee, 'dd/mm/yyyy')) as date_depart_fr,
  3. IF(critere_aller = 'depart', date_depart, date_arrivee) as date_depart,
  4. IF(critere_aller = 'depart', TO_CHAR(h_depart, 'hh24'), TO_CHAR(h_arrivee, 'hh24')) as h_depart,
  5. IF(critere_aller = 'depart', TO_CHAR(h_depart, 'mi'), TO_CHAR(h_arrivee, 'mi')) as min_depart,
  6. 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,
  7. IF(retour = 'oui', if (critere_retour = 'depart', TO_CHAR(h_depart_retour, 'hh24'), TO_CHAR(h_arrivee_retour, 'hh24')), 'AS') as h_retour,
  8. IF(retour = 'oui', if (critere_retour = 'depart', TO_CHAR(h_depart_retour, 'mi'), TO_CHAR(h_arrivee_retour, 'mi')), 'AS') as min_retour
  9. FROM mis_vols
  10. WHERE id_mission = 56984
  11. 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
mood
Publicité
Posté le 19-05-2008 à 10:32:30  profilanswer
 

n°1733601
krovomi
Posté le 19-05-2008 à 11:15:51  profilanswer
 

Personne ne voit ?

n°1733612
vttman2
Je suis Open ...
Posté le 19-05-2008 à 11:40:23  profilanswer
 

Un DECODE à la place du IF ?


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1733638
krovomi
Posté le 19-05-2008 à 12:49:31  profilanswer
 

oui en effet il fallait un decode :
 
le code ressemble à ceci:
 
SELECT id_vol, id_mission, critere_aller, date_depart, date_arrivee, h_depart, h_arrivee, id_pays_depart, id_aeroport_depart, id_ville_depart, id_pays_arrivee, id_aeroport_arrivee, id_ville_arrivee, classe, billet_contraintes, commentaires, retour, critere_retour, date_depart_retour, date_arrivee_retour, h_depart_retour, h_arrivee_retour, destinataire,
       DECODE(critere_aller, 'depart', TO_CHAR(date_depart, 'dd/mm/yyyy'), TO_CHAR(date_arrivee, 'dd/mm/yyyy')) date_depart_fr,
       DECODE(critere_aller, 'depart', date_arrivee, date_arrivee) date_depart,
       DECODE(critere_aller, 'depart', TO_CHAR(h_arrivee, 'hh24'), TO_CHAR(h_arrivee, 'hh24')) h_depart,
       DECODE(critere_aller, 'depart', TO_CHAR(h_arrivee, 'mi'), TO_CHAR(h_arrivee, 'mi')) min_depart,
       DECODE(retour, 'oui', decode(critere_retour, 'depart', TO_CHAR(date_depart_retour, 'dd/mm/yyyy'), TO_CHAR(date_depart_retour, 'dd/mm/yyyy')), 'AS') date_retour_fr,
       DECODE(retour, 'oui', decode(critere_retour, 'depart', TO_CHAR(h_depart_retour, 'hh24'), TO_CHAR(h_depart_retour, 'hh24')), 'AS') h_retour,
       DECODE(retour, 'oui', decode(critere_retour, 'depart', TO_CHAR(h_depart_retour, 'mi'), TO_CHAR(h_depart_retour, 'mi')), 'AS') min_retour
       FROM mis_vols
       WHERE id_mission = 28
       ORDER BY date_depart


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][Oracle] Problème requete

 

Sujets relatifs
CSS + Joomla = problème d'espacementMySQL : Problème de date
[Résolu]Récupérer l'id courant ?Problème css/html
Problème de session: deconnexion.[C] probleme avec librairie mysql.h [résolu]
sup des caracteres et rajouter un prefix dans nom de fichier [RESOLU][WEB] Problème d'hebergement
Problème avec JButton et SetIcon... 
Plus de sujets relatifs à : [Résolu][Oracle] Problème requete


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR