Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1259 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] alias de subquery avec Oracle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] alias de subquery avec Oracle

n°1887011
gpt1plon
Code amis 2320-6244-9244
Posté le 22-05-2009 à 13:09:19  profilanswer
 

Bonjour,
 
j'ai un petit probleme sous Oracle, l example ci dessous n'est pas optimum, mais j aimerai bien pouvoir le faire marcher:  
     query A:
 
select ... from....  
 
Query B
 
select ... from ....
 
 
Query C
 
select A.xxx B.xxx from A
inner join A.yyy=B.yyyy AND ....
 
 
donc voila,le probleme est le suivant:
Comment nomme toi une querie sous Oracle?
 
J ai essaye pas mal de chose, genre "AS" ou rien et a chaque ca coince dessus:
(select .... from....) A
 
Voila
Merci                                                

mood
Publicité
Posté le 22-05-2009 à 13:09:19  profilanswer
 

n°1887012
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-05-2009 à 13:11:47  profilanswer
 

rien compris à ce que tu veux faire... essaie d'être plus explicite stp (j'ai bien compris que tu voulais aliaser une sous requête, mais je soupçonne qu'il existe bien plus simple que ce que tu veux faire)


---------------
J'ai un string dans l'array (Paris Hilton)
n°1887016
vttman2
Je suis Open ...
Posté le 22-05-2009 à 13:36:58  profilanswer
 

Tu peux regarder du coté des vues aussi ...
 
create view MYVIEW
as (select chp1, chp2 from matable)
 
ensuite  
 
select M.chp1 from MYVIEW M ....
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1887023
gpt1plon
Code amis 2320-6244-9244
Posté le 22-05-2009 à 13:57:41  profilanswer
 

Merci,  
je vais jeter un oeil,
 
Voila ma query... et le probleme, c est l alias.
Je voudrais simplement nommer mes 2 queries:
CID_max et l autre CID_hour et avec Oracle, ca n a pas l air si simple...
 
 
(
select  max((t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248)  CID ,to_date(t.cbt),v.site_id
 from pmdata_u850_xshmy90801.aal2ap_a t  
inner join site_subrack v on v.site_id=substr(t.fdn,length(t.fdn)-6)
where t.CBT>to_date(SYSDATE) AND t.timeres_id=1
group by  to_date(t.CBT),v.site_id
) CID_max
 
(select  (t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248  CID ,t.cbt hour, to_date(cbt),v.site_id
 from pmdata_u850_xshmy90801.aal2ap_a t  
inner join site_subrack v on v.site_id=substr(t.fdn,length(t.fdn)-6)
where t.CBT>to_date(SYSDATE) AND t.timeres_id=1
) CID_hour
 
select CID_max.CID,CID_max.date,CID_max.site_id,CID_hour.hour from CID_max
inner join CID_hour on CID_hour.site_id=CID_max.site_id AND CID_hour.CID=CID_max.CID AND CID_hour.date=CID_max.date
 
 
Oui, il y a d autres alternative, je suis d accord, genre un  Rank() over Partition, mais bon.
 
Merci!

n°1887026
vttman2
Je suis Open ...
Posté le 22-05-2009 à 14:22:39  profilanswer
 

create view CID_max  
as
(  
select  max((t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248)  CID ,to_date(t.cbt),v.site_id  
 from pmdata_u850_xshmy90801.aal2ap_a t  
inner join site_subrack v on v.site_id=substr(t.fdn,length(t.fdn)-6)  
where t.CBT>to_date(SYSDATE) AND t.timeres_id=1  
group by  to_date(t.CBT),v.site_id  
)  
 
et
 
create view CID_hour  
as
(select  (t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248  CID ,t.cbt hour, to_date(cbt),v.site_id  
 from pmdata_u850_xshmy90801.aal2ap_a t  
inner join site_subrack v on v.site_id=substr(t.fdn,length(t.fdn)-6)  
where t.CBT>to_date(SYSDATE) AND t.timeres_id=1  
)  
et la requête d'après devrait passer ;-)


Message édité par vttman2 le 22-05-2009 à 14:23:01

---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°1887029
couak
Posté le 22-05-2009 à 14:36:51  profilanswer
 

essayes un truc de ce style :

Code :
  1. SELECT
  2.  ...
  3. FROM
  4.  (
  5.     SELECT...
  6.  ) CID_max,
  7.  (
  8.     SELECT...
  9.  ) CID_hour
  10. WHERE
  11.  ...

n°1887158
gpt1plon
Code amis 2320-6244-9244
Posté le 23-05-2009 à 10:29:56  profilanswer
 

merci, j essayerai au boulot lundi!
Je ne connaissais pas create view.... mais ca semble pas mal du tout.
 
Couak, oui, il me semble avoir essayer ca aussi, mais ca coince au niveau de CID_max, toujours le meme probleme avec le nom de la subquery...

n°1887499
couak
Posté le 25-05-2009 à 10:36:19  profilanswer
 

bah chez moi ca marche =) pas ta requête car j'ai la flemme de recréer les mêmes structure de table, mais le même style j'ai pas de soucis
en postant ton message d'erreur et ta requête peut-être qu'on y verra mieux

n°1887504
casimimir
Posté le 25-05-2009 à 10:49:45  profilanswer
 

il faut voir exactement ce que tu veux faire, si tu veux garder la structure que tu as écrit alors il faut passer par un WITH, je te laisse chercher dans la doc, en gros cela permet de définir un query et de l'aliaser, puis de le réutiliser dans une autre requête, cela sert a alléger la lecture du code, mais c'est surtout utile si cette query est utilisée plusieurs fois dans un même query, car déja, ce n'est écrit qu'une fois, mais surtout la requête ne sera effectuée que une fois même si plusieurs appels.
 
 
mais dans ton cas pourquoi ne fais tu pas juste
 
 

Code :
  1. SELECT CID_max.CID,CID_max.date,CID_max.site_id,CID_hour.hour FROM CID_max
  2. (SELECT  max((t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248)  CID ,to_date(t.cbt),v.site_id
  3. FROM pmdata_u850_xshmy90801.aal2ap_a t  
  4. INNER JOIN site_subrack v ON v.site_id=substr(t.fdn,length(t.fdn)-6)
  5. WHERE t.CBT>to_date(SYSDATE) AND t.timeres_id=1
  6. GROUP BY  to_date(t.CBT),v.site_id
  7. ) CID_max
  8. INNER JOIN
  9. (SELECT  (t.pmexisorigconns+t.pmexistermconns+t.pmexistransconns)/248  CID ,t.cbt hour, to_date(cbt),v.site_id
  10. FROM pmdata_u850_xshmy90801.aal2ap_a t  
  11. INNER JOIN site_subrack v ON v.site_id=substr(t.fdn,length(t.fdn)-6)
  12. WHERE t.CBT>to_date(SYSDATE) AND t.timeres_id=1
  13. ) CID_hour ON CID_hour.site_id=CID_max.site_id AND CID_hour.CID=CID_max.CID AND CID_hour.date=CID_max.date


 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] alias de subquery avec Oracle

 

Sujets relatifs
Affichage des doublons en SQL[Besoin d'aide]: php dans requête SQL qui ne fonctionne pas
#1242 - Subquery returns more than 1 rowRequete SQL , PHP et Date (mois)
[PHP/mySQL] Different resultat d'une equete SQL entre PHP / phpMyAdmin[SQL] Jointure avec un OR [Résolu]
Probleme variable entrante function Oracle[SQL] Demande d'informations sur des requetes à créer
[SQL] Indiquer ou pas la présence de clé étrangère[SQL] Problème création BDD SQL
Plus de sujets relatifs à : [SQL] alias de subquery avec Oracle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR