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 :

Transmettre un champs d'une requete dans une sous-requete


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Transmettre un champs d'une requete dans une sous-requete
    Bonjour,

    Je cherche actuellement à transmettre un champs de ma requête principale dans ma sous requête. Ou si ce n'est possible, je suis preneur d'idée alternative
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT DISTINCT
           v.id_account as code_account,
           v.descr AS nom, ...
           ,
           (SELECT A
              FROM (SELECT DATE_END A,
                           row_number() OVER (ORDER BY DATE_END DESC) AS r
                      FROM ACTIVITY_VS
                     WHERE ID_ENTITY = v.id_account -- ici 
                       AND TYPE_ACT = 'VISIT'
                       AND STATUS_ENTITY = 'F')
             WHERE r = 1) as date_derniere_visite
      FROM ACCOUNT_VS v, ...
    WHERE ...
    La requête s'exécute depuis une page jsp, et j'utilise la version 9 d'Oracle.

    Merci d'avance à ceux qui prendront le temps de me lire

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    On ne peut référencer dans une sous-requête qu'un seul niveau d'imbrication sous Oracle.
    De manière générale, les requêtes scalaires (sous-requête au niveau du select) sont très rarement efficaces, qu'essayez-vous de faire ?

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il veut la date de la dernière visite, il y en a plusieurs...
    Agrégez avec Group by et Min avec keep (dense rank last …) par exemple.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Merci de votre réponse, je n'ai pas de grosse connaissance en SQL et encore moins en Oracle.
    Je ne connais pas la fonction Keep et j'ai du mal à trouver des infos dessus.
    Savez-vous où puis-je en trouver ?

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    En fait la fonction c'est FIRST / LAST, c'est documenté sur le site d'Oracle :
    http://download.oracle.com/docs/cd/E...htm#SQLRF00641

    N'hésitez pas à préciser votre besoin avec un jeu d'essai si vous n'y arrivez pas !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    J'ai réglé mon problème différemment, en passant par un max, une jointure externe et un group by.

    Merci à tous

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

Discussions similaires

  1. [MySQL] requete dans une table avec une varible d'une autre table
    Par kogoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/11/2011, 15h24
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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