Dúvida: ALIASES [RESOLVIDO]

3 respostas
Foxlol

Galera já cansei de tanto procurar e não achar nada. Aqui não sei se seria o fórum certo pra postar mas como tem mta gente com expêriencia aqui que jah deve ter passado por isso. Qlq ajuda eh válida.

Gostaria de saber se no SQL SERVER eu posso usar um ALIAS para fazer operações dentro do SELECT(após o mesmo ter sido declarado).

Por exemplo, em Access:

[b]SELECT (Quantidade * ValorUnitario) AS [color=red]Total[/color],

Quantidade / [color=red]Total[/color]

FROM Orcamento_ProdutoServico[/b]

Vejam que depois que declarei o “TOTAL” eu o uso para outra operação.

Não estou conseguindo fazer isso no SQL SERVER pois ele não detecta o TOTAL. Sendo assim toda hora tenho que substituir o TOTAL por “(Quantidade *ValorUnitario)” :

[b]SELECT (Quantidade * ValorUnitario) AS [color=red]Total[/color],

Quantidade / [color=red](Quantidade * ValorUnitario)[/color]
FROM Orcamento_ProdutoServico[/b]

Alguém sabe de algum modo prático de se fazer isso ?

Obrigado.

3 Respostas

legionarioba

Foxlol,

Para o que você está tentando fazer não resolve, ai você só está dizendo qual vai ser como o nome do campo será mostrado. Se você quiser referenciar o campo da forma como você deseja ele teria que estar na cláusula from. Poderia ser algo assim:

select tabAux.valorTotal,  ops.quantidade/tabAux.valorTotal from 
(select Quantidade * ValorUnitario as valortotal from  FROM Orcamento_ProdutoServico) tabAux,  Orcamento_ProdutoServico as ops

Mas tenha em mente, os aliases usados na seleção só são usados para referenciar o campo, não sáo “reaproveitáveis” como você quis fazer porque representam apenas um aspecto temporal…Espero que tenha entendido…

FeniX

Só corrigindo a query apresentada pelo legionarioba (que não funcionaria da maneira esperada):

select total, quantidade/total
 from  (select quantidade , (quantidade * valorunitario) as total 
           from  Orcamento_ProdutoServico) tabAux
Foxlol

Obrigado galera !

Agora sim entendi …

Vlw msm

Abraço

Criado 23 de junho de 2006
Ultima resposta 23 de jun. de 2006
Respostas 3
Participantes 3