Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 10h54   #1
Futur Membre du Club
 
Inscription : juillet 2009
Messages : 45
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 45
Points : 15
Points : 15
Par défaut Exécution selon sous-requête

Bonjour,

j'aimerais connaitre la syntaxe pour une instruction qui s’exécute selon le résultat d'une sous requête, exemple :

Code :
1
2
3
SELECT * FROM file
WHERE date < '31-01-12'
AND IF (SELECT count(*) FROM file WHERE date BETWEEN '01-10-11' AND '31-10-11') <> 0
le difficulté est de borner la requête sur une date et de tester la présence de mouvement pendant une période différente.

merci
antalata est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 11h04   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Faites-vous une faveur, écrivez vos dates convenablement.

Pour votre soucis, utilisez l'opérateur EXISTS :
Code :
1
2
3
4
5
6
7
SELECT *
  FROM file
 WHERE date < to_date('31-01-2012', 'dd-mm-yyyy')
   AND EXISTS (SELECT NULL
                 FROM file
                WHERE date BETWEEN to_date('01-10-2011', 'dd-mm-yyyy')
                               AND to_date('31-10-2011', 'dd-mm-yyyy'));
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/01/2012, 11h50   #3
Futur Membre du Club
 
Inscription : juillet 2009
Messages : 45
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 45
Points : 15
Points : 15
Par défaut OK

Merci ça fonctionne

par contre je n'ai pas compris pour les dates, la façon dont c'est écrit fonctionne chez moi.
cela va t il améliorer les performances ?
antalata est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/01/2012, 11h58   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Oracle doit convertir vos chaînes de caractères en dates pour qu'il puisse faire les comparaisons.
Il est aiguillé par les paramètres du serveur, de votre session, de votre outil client pour faire le bon choix.
Ce qui pourra fonctionner sur votre client pourrait ne pas fonctionner dans une procédure stockée ou chez votre voisin.

Avec TO_DATE, le format est précisé ça fonctionnera toujours.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h11.


 
 
 
 
Partenaires

Hébergement Web