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ódigoSelect
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ódigoSelect
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 !!!