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 :

variables pas toutes liées dans select imbriqué


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut variables pas toutes liées dans select imbriqué
    Bonjour à tous,
    J'ai un problème au niveau d'un select.
    Mon boss veut que je fasse une requête assez importante
    Je dois fournir la liste des commandes n°, fournisseurs, date, fournisseur potentiel 1, fournisseur potentiel 2, fournisseur potentiel 3

    Le problème réside sur les fournisseurs potentiels.
    comment peut-on trier les fournisseurs potentiels en utilisant le n° du commande alors que ce numero doit être un des résultats de la requête

    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select <s>c.num</s>,c.fournisseur, c.daty, f.ref_fournisseur 
    (select f.fournisseur from fournisseurs f where num_f =:c.num and rownum = 1 ) fournisseur1 from commandes c   
    -- le num ici est <s>num</s>
    inner join fournisseurs f on
    c.num = f.num
    order by 1;
    mais il y a erreur du genre toutes les variables ne sont pas liées. Je pense que c'est surtout au niveau de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (select f.fournisseur from fournisseurs f where num_f =:c.num and rownum = 1    -- le num ici est <s>num</s>) fournisseur1
    Quelqu'un a t-il une idée?
    Merci d'avance
    Mialy Elodie

  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
    : dans du select, c'est pour binder des variables.
    Si tu veux faire référence à "<s>c.num</s>", enlève donc les :

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    J'ai enlevé les : mais comme erreur il y a
    c.num identificateur non valide

  4. #4
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Il manque une virgule entre f.ref_fournisseur et ton (SELECT...)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Au fait merci mais j'avais mis une virgule dans ma requête, j'avais omis de le mettre ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT <s>c.num</s>,c.fournisseur, c.daty, f.ref_fournisseur, 
    (SELECT f.fournisseur FROM fournisseurs f WHERE num_f =:c.num AND rownum = 1 ) fournisseur1 FROM commandes c   
    -- le num ici est <s>num</s>
    INNER JOIN fournisseurs f ON
    c.num = f.num
    ORDER BY 1;
    mais le problème persiste encore

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    J'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT c.num ,c.fournisseur, c.daty, f.ref_fournisseur, 
    (SELECT f.fournisseur FROM fournisseurs f
    inner join commandes c on f.num_f = c.num
     where rownum = 1 ) fournisseur1 FROM commandes c   
    -- le num ici est <s>num</s>
    INNER JOIN fournisseurs f ON
    c.num = f.num
    ORDER BY 1;
    mais la requête me renvoit le même fournisseur1 pour tous les numeros de commande

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 19/09/2011, 16h52
  2. je n ai pas tout compris dans le script
    Par letigre dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2006, 10h44
  3. Réponses: 4
    Dernier message: 30/05/2006, 17h21
  4. Réponses: 11
    Dernier message: 04/05/2006, 11h50
  5. [Tableaux] Recuper toutes les options dans select
    Par Tempotpo dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 14h26

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