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

Langage SQL Discussion :

Enlever la sous requête


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Enlever la sous requête
    Bonjour,

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    select chp 1 as COCO_CAT, 
    -sum(chp2) as MTCNPE 
    from Table1
    where 
    	chp3 in (select	chp3
    		from Table1
    		where	condition1
    			and	condition2
    			and	condition3
    		group by chp3
    		having	max(chp4)>'2013-12-31')
    and
      chp4 <= '?DATE'
    group by COCO_CAT
    having MTCNPE <> 0;
    J'aimerai enlever la sous-requête et la remplacer par des jointures.
    Est-ce faisable ? si oui, comment ?

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 433
    Points : 40 165
    Points
    40 165
    Billets dans le blog
    9
    Par défaut
    Pourquoi enlever cette sous-requete ? quel est le problème ?


    De plus :
    - le test du libellé est il fiable (problèmes éventuels de majuscules, accents etc...)
    - pourquoi faire un in pour une valeur unique (COOPX in ('080'))
    - on peut juste remplacer where ... in par where exists qui sera le plus souvent plus performant

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton retour.

    Il n'y a pas de problème en soi.
    Je voulais juste savoir s'il était possible de ne pas avoir de sous-requête et de tous faire avec des jointures.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 433
    Points : 40 165
    Points
    40 165
    Billets dans le blog
    9
    Par défaut
    On peut faire une CTE (with ce qu'il y a dans la sous-requete) puis select

Discussions similaires

  1. [OPTIMISATION SQL] Comment enlever une sous-requête
    Par SuperCed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/05/2009, 10h58
  2. Problème DBExpress et sous requêtes ???
    Par Trulane dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/03/2004, 15h40
  3. Requêtes et sous requêtes
    Par lau2nyce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2004, 16h14
  4. suppression avec sous requête conditionnelle
    Par melmel dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/03/2004, 00h20
  5. Réponses: 3
    Dernier message: 18/05/2003, 01h16

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