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 :

Sens du symbole (+)


Sujet :

Langage SQL

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut Sens du symbole (+)
    Bonjour
    Je voudrais connaître le sens de (+) dans une requette.
    Par exemple dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT delta.EXPIRY, Sum(delta.VALUE)
    FROM PLS.DELTA_R2D2FUT_VIEW delta, PLS.PROP_IRD_TRADE_INFO carac
    AND delta.SYSTEM_LOCATION=x
    AND delta.TRADEID(+)=carac.TRADEID
    AND delta.APPLICATION=carac.APPLICATION
    ...
    GROUP BY delta.EXPIRY
    ORDER BY delta.EXPIRY
    merci

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonsoir,

    Les caractères "(+)" servaient à effectuer une jointure externe sur les bases de données Oracle avant la version 9.
    C'est syntaxe est très obsolète et déconseillée.

    Celle-ci devrait être équivalente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT delta.EXPIRY, Sum(delta.VALUE)
    FROM PLS.PROP_IRD_TRADE_INFO carac, 
      LEFT JOIN PLS.DELTA_R2D2FUT_VIEW delta
         ON delta.SYSTEM_LOCATION=x
        AND delta.TRADEID=carac.TRADEID
        AND delta.APPLICATION=carac.APPLICATION
    ...
    GROUP BY delta.EXPIRY
    ORDER BY delta.EXPIRY

  3. #3
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    J'ai une autre question
    Supposons qu'on ait deux tables:

    Dans la table Test1:
    LIVRE TRADEID MATURITY EXPIRY COMPANY VALEUR CLEPRIM
    Book 1000 1Y 2Y HSBC 10 1

    Et dans la table Test2:

    CLEPRIMAIRE PORTEFEUILLE TRADEID DEVISE SOCIETY EXPIRY VAL
    1 Book 1001 EUR HSBC 10Y 30
    2 Book 1001 EUR HSBC 13Y 3

    Je ne comprends pas pourquoi le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.TRADEID, T1.MATURITY, T1.LIVRE ,Sum(T1.VALEUR)
    FROM Test1 T1, Test2 T2
    GROUP BY T1.MATURITY
    renvoie le double de VALEUR, à savoir 20.
    Merci

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Sans critère de jointure, vous faites un produit cartésien des deux tables.
    D'ailleurs vous n'utilisez dans la requête que des colonnes de la table Test1, donc inutile de mentionner Test2 dans la clause FROM.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Ces questions révèlent un gros besoin de cours SQL !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  2. [ALGO] dessiner un triangle dans le bon sens
    Par lefait dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 05/02/2005, 14h38
  3. Organigramme d'un algorithme, convention de symboles
    Par rstephane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 12/06/2003, 17h47
  4. [Sybase] Définition des symboles
    Par SoaB dans le forum Sybase
    Réponses: 5
    Dernier message: 19/03/2003, 23h06
  5. symbole ##
    Par JEG dans le forum C
    Réponses: 2
    Dernier message: 23/01/2003, 19h15

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