select
a.Campo1,
a.Campo2,
(select sum(CampoDaTabela2) where bla bla bla = bla bla bla as Campo3,
(select sum(CampoDaTabela3) as Campo4,
(Campo3 * Campo4) as CampoCalculado
from tabela as a
inner join TabelaX as b on b.Campo1 = a.Campo1
Como minha procedure é 1 pouco grande e complexa, resolvi encenar do jeito
simples acima. Os campos 3 e 4 são colunas do meu select principal, que me
retornarão cada uma 1 determinado valor. Elas são representadas com os
apelidos que dei: Campo3 e Campo4
O quinto campo é 1 multiplicação desses 2 apelidos.
Só que o Sql não deixa dando a seguinte mensagem: "Invalid column name
'CampoCalculado'."
Se eu não puder fazer a conta (CampoCalculado) com os aliases Campo3 e
Campo4, eu vou ter que fazer a conta com o SubSelect Todo p/me retornar de
novo o primeiro valor ... multiplicando pelo SubSelect Todo p/ me retornar de
novo o segundo valor, gerando assim, o resultado, mas além de ficar
antihigiênica a procedure, ainda por cima perderia em performance 1 vez que
já possuo os valores na coluna, e creio q eu poderia fazer uso dos mesmo para
afzer o calculo que quiser
Alguém tem alguma salvação p/mim?????? Ou será q o sql é meio burrinho
mesmo! RSrsrsrs
Desde já agradeço
select campo1 from (select campo as campo1 from tabela ) Drv -- onde drv e
um nome de derivada de tabela um alias.
Abs. qualquer coisa retorne.
"Sidney Mendes de Siqueira"
<SidneyMende...@discussions.microsoft.com> escreveu na mensagem
news:A42F6566-9157-4FE5...@microsoft.com...
tente assim
select
a.Campo1,
a.Campo2,
(select sum(CampoDaTabela2) where bla bla bla = bla bla bla as Campo3,
(select sum(CampoDaTabela3)) as Campo4,
(select sum(CampoDaTabela2) where bla bla bla = bla bla bla) * (select
sum(CampoDaTabela3)) as CampoCalculado
from tabela as a
inner join TabelaX as b on b.Campo1 = a.Campo1
--
Abraços
Andre Hass
Http://www.ms-it.com.br
"Sidney Mendes de Siqueira" escreveu:
"Andre Hass" escreveu:
"Marcelo Colla" escreveu:
E o segundo comentário (--) é o cálculo que eu queria... por aí eu já iria
começar a me virar, se resolvesse o problema dessas duas linhas.
Com as linhas comentadas a select funciona.
select
idorg,
(select sum(valor_total_lote) as x from hgalotes where numero_lote =
numero_lote) as soma,
(select sum(valor_total_lote) as y from hgalotes where numero_lote =
numero_lote) * 10 as calculo
---SELECT VALOR_TOTAL_LOTE FROM (select sum(valor_total_lote) as
VALOR_TOTAL_LOTE from hgalotes where numero_lote = numero_lote) DRV --* 10 as
calculo
--> Era isso aqui que eu queria: (soma * calculo)
from hgalotes where idorg = 1 group by idorg
"Marcelo Colla" escreveu:
"Marcelo Colla" escreveu:
> o drv e um alias somente.