Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 14h54   #1
Futur Membre du Club
 
Inscription : mai 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 30
Points : 15
Points : 15
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 :
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
Vifouz est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/01/2011, 15h13   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 15h45   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 311
Points : 5 808
Points : 5 808
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.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 14h03   #4
Futur Membre du Club
 
Inscription : mai 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 30
Points : 15
Points : 15
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 ?
Vifouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 15h55   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 !
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 14h59   #6
Futur Membre du Club
 
Inscription : mai 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 30
Points : 15
Points : 15
Bonjour,

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

Merci à tous
Vifouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h46.


 
 
 
 
Partenaires

Hébergement Web