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

SQL Oracle Discussion :

Utiliser des ALIAS de colonnes dans une jointure


Sujet :

SQL Oracle

  1. #1
    Membre du Club Avatar de mbzhackers
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 87
    Points : 58
    Points
    58
    Par défaut Utiliser des ALIAS de colonnes dans une jointure
    Bonjour tout le monde,

    voilà j'aimerais utiliser une requête du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT A.CODE_MES, B.NUM_DOSS, GET_DEP(B.NUM_DOSS) AS "DEPOT"
    FROM TABLE1 A, TABLE2 B
    WHERE A.COD_MES = B.COD_MES
    AND DEPOT='jkkkkj'
    où GET_DEP est une fonction stockée, mais ça ne marche pas : j'ai un message d'erreur disant que DEPOT est un INVALID IDENTIFIER.

    N'est-il donc pas possible d'utiliser un ALIAS de colonne dans une jointure ou bien je m'y suis mal pris ?

    Merci d'éclairer ma lanterne.
    LEGOLAS la classe

  2. #2
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    Citation Envoyé par mbzhackers Voir le message
    Bonjour tout le monde,

    voilà j'aimerais utiliser une requête du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT A.CODE_MES, B.NUM_DOSS, GET_DEP(B.NUM_DOSS) AS "DEPOT"
    FROM TABLE1 A, TABLE2 B
    WHERE A.COD_MES = B.COD_MES
    AND DEPOT='jkkkkj'
    où GET_DEP est une fonction stockée, mais ça ne marche pas : j'ai un message d'erreur disant que DEPOT est un INVALID IDENTIFIER.

    N'est-il donc pas possible d'utiliser un ALIAS de colonne dans une jointure ou bien je m'y suis mal pris ?

    Merci d'éclairer ma lanterne.
    Ben justement il manque l'alias sur depot ....
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

  3. #3
    Membre du Club Avatar de mbzhackers
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 87
    Points : 58
    Points
    58
    Par défaut
    Salut,

    j'ai pas compris.

    DEPOT c'est l'ALIAS de la colonne retournée par la fonction
    GET_DEP(B.NUM_DOSS. Non ?
    LEGOLAS la classe

  4. #4
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    Citation Envoyé par mbzhackers Voir le message
    Salut,

    j'ai pas compris.

    DEPOT c'est l'ALIAS de la colonne retournée par la fonction
    GET_DEP(B.NUM_DOSS. Non ?
    Joker pardon j'ai super mal lu ....

    Alors pour faire simple :
    tu peux utiliser les alias de tables dans la clause WHERE
    mais pas les alias de colonnes, ca me semble un non sens.

    => tu lui dis le résultat de "WHERE" s'appelle 'DEPOT'
    mais tu utilises 'DEPOT' dans "WHERE"

    Remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT A.CODE_MES, B.NUM_DOSS, GET_DEP(B.NUM_DOSS) AS "DEPOT"
    FROM TABLE1 A, TABLE2 B
    WHERE A.COD_MES = B.COD_MES
    AND GET_DEP(B.NUM_DOSS) ='jkkkkj'
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

  5. #5
    Membre du Club Avatar de mbzhackers
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 87
    Points : 58
    Points
    58
    Par défaut
    Oui j'ai déjà essayé ça mais en terme de performances c'est la cata : je pense que le fait d'exécuter la fonction 2 fois de suite en est la cause surtout si les 2 tables dont on parle font dans les 500 milles enregistrements.

    En fait, j'ai trouvé une autre solution : j'ai bâti une vue sur cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A.CODE_MES, B.NUM_DOSS, GET_DEP(B.NUM_DOSS) AS "DEPOT"
    FROM TABLE1 A, TABLE2 B
    WHERE A.COD_MES = B.COD_MES
    Ensuite, dans ma FORM je définis un nouveau bloc de données ayant comme source de données la vue en question et dans la propriété DEFAULT WHERE du bloc je mais la 2ème condition de jointure ( DEPOT='jkkkkj' ).
    Et ça marche , temps d'exécution 1 seconde !

    Pourquoi ça marche pas en SQL natif alors que dans FORMS ça fonctionne, ça reste à voir.

    Merci
    miloux32 pour ton implication.
    LEGOLAS la classe

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

Discussions similaires

  1. Utiliser un alias de colonne dans une clause Where MS SQL
    Par sir dragorn dans le forum Langage SQL
    Réponses: 11
    Dernier message: 12/10/2011, 09h31
  2. Utilisation des niveaux d'isolation dans une transaction
    Par benradw dans le forum Accès aux données
    Réponses: 0
    Dernier message: 03/05/2010, 13h59
  3. Réponses: 4
    Dernier message: 26/03/2008, 09h43
  4. Utilisation des méthodes de classe dans une autre classe
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 4
    Dernier message: 28/07/2007, 15h10
  5. Réponses: 1
    Dernier message: 03/04/2007, 12h02

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