IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Clause ORACLE EXISTS [12c]


Sujet :

Oracle

  1. #1
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut Clause ORACLE EXISTS
    Bonjour,

    Je viens demander de l'aide je suis totalement rouillée sur les clause exists

    Mon besoin est de récupérer les num_cmd et nom_ind des entreprises(individus) qui ont passé des commandes en 2002 et 2020, j'ai commencé à faire cette requête mais je pense que je me suis plantée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT num_cmd, nom_ind
    FROM individu a
    WHERE exists (select 1 from commande b
    where a.num_cmd=b.num_cmd
    and b.cod_anu = '2002' and cod_anu = '2020'
    and stat_cmd = 'E') 
    order by num_cmd;
    Merci à tous de votre aide.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    and b.cod_anu = '2002' and cod_anu = 2020
    ?


    D'une part tu mélanges les types Varchar et Number, ce n'est pas propre
    Ensuite : Est-ce que ton âge est '2002' ET 2020 ? .. impossible une colonne d'une ligne ne peut pas avoir 2 valeurs.

    Il faut faire des intersections
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exists (commande 2002)
    AND Exists (commande 2020)

  3. #3
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2017
    Messages : 53
    Par défaut
    Bonjour,

    Faute de frappe quand j'ai recopié ma ligne pour l'oublie des cotes

    L'année doit être 2002 et 2020. Je dois pouvoir identifier ceux qui ont fait des commandes en 2002 et 2020.
    Merci pour ta réponse cela fonctionne très bien, je pensais pouvoir tout faire avec une seule clause EXISTS

    Passe une très bonne journée.

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu pourrais en groupant et comptant les années différentes, mais niveau optimisation c'est pas le top

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT num_cmd, nom_ind
    FROM individu a
    WHERE EXISTS (SELECT 1 FROM commande b
    		WHERE a.num_cmd=b.num_cmd AND b.cod_anu IN ('2002', '2020') AND stat_cmd = 'E'
    		HAVING MIN(b.cod_anu) <> MAX(b.cod_anu)
    		) 
    order by num_cmd;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requète clause not exists
    Par frabeau dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/11/2011, 20h08
  2. Probleme clause NOT EXISTS et NOT IN
    Par Jarod51 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/07/2010, 09h42
  3. la clause IF EXISTS sous Oracle
    Par kmezine dans le forum Oracle
    Réponses: 2
    Dernier message: 30/09/2009, 18h50
  4. Existence de la clause MODEL en-dehors d'Oracle
    Par Antoun dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/07/2008, 18h01
  5. [Oracle 9i] Optimisation clause not exists
    Par mjolymelot dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/08/2006, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo