Array
(
)

Problema com Calculo em Sub-Select

Murilo-jau
   - 13 jun 2008

Pessoal, estou convertendo um SQL de ORACLE para MSSQL e o SQL está + - assim:

Select A.campo1,
A.campo2,
( Select SUM( B.campo1 * C.campo1 )
from B
where B.Campo2 = C.campo2 )
From A , C , D
where A.campo4 = D.campo4
and C.campo5 = A.campo5

Mas da este erro:
´Multiple columns are specified in an aggregated expression ...´

Pois a tabela C esta declarada no From do 1º select e ele tem seus relacionamentos.

Alguem ai pode me ajudar ???

Emerson
   - 14 jun 2008

tente assim:
#Código

Select
  A.campo1,
  A.campo2,
  (Select SUM(B.campo1)
   from B
   where B.Campo2 = C.campo2) * C.campo1
From
  A, C, D
where
  A.campo4 = D.campo4
  and C.campo5 = A.campo5

ou assim:
#Código
Select
  A.campo1,
  A.campo2,
  sum(B.campo1 * C.campo1)
From
  A
inner join
  C on C.campo5 = A.campo5
inner join
  D on D.campo4 = A.campo4
inner join
  B on B.Campo2 = C.campo2
group by
  A.campo1,
  A.campo2


Murilo-jau
   - 19 jun 2008

Obrigado Emerson, como o sql tem mais de 300 linhas useu seu primeiro exemplo e deu certo !!!