[oracle]

[oracle] - SQL/NoSQL - Programmation

Marsh Posté le 03-07-2003 à 15:16:23    

Bonjour,
j'ai un petit pb en SQL...
Bon en fait je vais vous donner un exemple un peu plus simple que ce que je veux faire... mais si j'ai la reponse a ca, tout s'arrange.
 
Bon ben voila l'exemple permet d'obtenir different niveaux d'agregats sur une table :
supposons qu'on ait une table contenant des secteurs et des campagnes. une campagne peu appartenir a plusieurs secteurs et contient plusieurs annonceurs. Pour chaque secteur/campagne/annonceur il y a un revenu.
Je veux obtenir une liste avec pour chaque ligne le revenu du secteur et de la campagne (c les sommes des revenus)
 
Donc j'ai pense a ca (les abreviations sont comprehensibles je crois):
 
select
  sct
  , cmp
  , sum(rev)
  , (select sum(rev) from table t1 where t0.sct = t1.sct) from table t0  
group by sct, cmp
 
 
Mais qd je fais ca je me prend un "ORA-0079 : N'est pas une expression group by" sur le second 'sum'
 
J'ai un bouquin de SQL ou il y a exctement cette requete, et ils disent que ca marche en SQL-92 (bon je sais pas ce que j'utilise : 89, 92, autre ???
 
L'exemple est facilement adaptable a n'importe quelle table...
 
Quelqu'un saurait pourquoi cette erreur... ou  alors propose une solution
 
Merci bcp...

Reply

Marsh Posté le 03-07-2003 à 15:16:23   

Reply

Marsh Posté le 03-07-2003 à 15:47:52    

Bah... Tente de rajouter ta sous-requête dans le group by :??:
 
Mais sinon, pourquoi tu vais pas un connect by ?
 
Si j'ai bien compris, c'est une seule table qui contient différents types d'entités qui sont liées entre elles de façon hiérachiques non ?
 
Si c'est ça, alors connect by est parfait.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed