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 :

[SQL] pb de requète


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut [SQL] pb de requète
    salut,

    J'ai un problème avec ma base.
    Pour simplifier:

    test1: test2 test3

    id adresse id nom test1_id id n_commande test2_id ad_id
    1 gap 1 toto 1 1 poutre 4
    2 marmande 2 bob 4 2 skis 1
    3 paris 3 greg 2 3 patin 3
    4 gap 4 teub 3 4 toupie 2

    je fais la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update test3
    set ad_id=(select adresse from test3, test2, test1
               where test2.id=test3.test2_id
                    and test1.id=test2.test1_id);
    afin d'obtenir l'adresse correspondante dans la colonne ad_id.


    J'obtient l'erreur "sous interrogation ramenant à un enregistrement de plus d'une ligne

    Je comprend pas pourquoi, un id de la table test3 correspond à une seule adresse

    Si vous avez une explication ou une autre solution...
    Je suis sur la version 8i d'oracle

    merci

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    désolé il semblerait que les espaces que j'avais mis pour simuler 3 tables n'aient pas été pris en compte.
    J'ai pas trouvé comment faire un tableau

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    test1

    ID ADRESSE
    1 gap
    2 marmande
    3 loic
    4 gap

    test2:

    ID NOM PRENOM TEST1_ID
    1 c sebastien 1
    2 d pierre 4
    3 e carine 2
    4 f seb 3

    test3

    ID N_COMMANDE TEST2_ID AD_ID
    1 poutre 4 (null)
    2 skis 1 (null)
    3 patin 3 (null)
    4 jouet 2 (null)

  4. #4
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,
    C'est pas quelque chose comme cela que tu veux faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update test3 T
    set ad_id=(select adresse from test3, test2, test1
               where test2.id=test3.test2_id
                    and test1.id=test2.test1_id
                     and test3.id  = T.id);

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    61
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 61
    Par défaut
    je comprend pas trop ce qu'est le T

    En tout cas maintenant j'ai l'erreur : 16:07:59 [UPDATE - 0 row(s), 0.108 secs] [Error Code: 1722, SQL State: 42000] ORA-01722: Nombre non valide
    ... 1 statement(s) executed, 0 row(s) affected, database exec time 0.108 sec [0 successful, 0 warnings, 1 errors]

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    T est un alias pour référencer la table dans la sous-requête

    merci de chercher un minimum pour l'erreur que tu obtiens

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

Discussions similaires

  1. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  3. Backup BD SQL Server
    Par Ethmane dans le forum Administration
    Réponses: 3
    Dernier message: 07/06/2002, 00h42
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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