Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VentaliSistemas

: aliases

Recommended Posts

Gostaria de saber se no SQL SERVER eu posso usar um ALIAS para fazer operações dentro do SELECT.Por exemplo, em Access:SELECT [Orcamento_ProdutoServico].[Quantidade] * [Orcamento_ProdutoServico].[ValorUnitario]AS Total, [Orcamento_ProdutoServico].[Quantidade] / TotalFROM [Orcamento_ProdutoServico] 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 "[Orcamento_ProdutoServico].[Quantidade]*[Orcamento_ProdutoServico].[ValorUnitario]":SELECT [Orcamento_ProdutoServico].[Quantidade] * [Orcamento_ProdutoServico].[ValorUnitario]AS Total, [Orcamento_ProdutoServico].[Quantidade] / ([Orcamento_ProdutoServico].[Quantidade]*[Orcamento_ProdutoServico].[ValorUnitario])FROM [Orcamento_ProdutoServico] Alguém sabe de algum modo prático de se fazer isso ?Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

direto assim não.... ele só assume o valor do alias, se não me engano, após o order by e em caso de subquery... beleza?

SELECT (Quantidade * ValorUnitario) AS Total,Quantidade / (Quantidade * ValorUnitario)FROM Orcamento_ProdutoServico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá VentaliSistemas,

 

Talvez isso te ajude: Associando tabelas - REVISTA SQL MAGAZINE - Wagner Bianchi

 

OBS.: Lembrando que você poderá baixar o source no final do artigo para melhor praticar e salientar o uso de alias.

 

DEUS Abençõe!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda galera !Mas mesmo assim ainda ta dificil !Não é possivel que em Access seja possivel e no SQL Server 2000 seja tão dificil assim. Um coisa tão simples. Deve ter algum jeito ... se alguem souber ...Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

É...

também não sei se o sqlserver faz exatamente como o access faz, mas temos um recurso bem legal que você pode usar para solucionar esse problema.

Uma query pode ser retornada como uma tabela, no sqlserver 2000, de forma que você pode dar um select em um outro select!

 

Por exemplo:

create table tblteste -- Criando a tabela de teste(a1 int, a2 int, a3 int, a4 int)

select * from ( select (a1+a2) as total, a1, a2, a3, a4 from tblteste as t1 ) as qryTeste

 

Aqui, estou dando um select na query "select (a1+a2) as total, a1, a2, a3, a4 from tblteste as t1".

Com isto, estou retornando dados da maneira que eu quero, inclusive uma soma dos campos a1 e a2. Assim, na query de "fora", posso utilizar este total como dado para realizar outras operações, como por exemplo:

 

 

select (total*a1)  from (select (a1+a2) as [total], a1, a2, a3, a4 from tblteste as t1) as qryTeste
obtendo o resultado:

3

6

21

28

 

Bom, eu creio que naun ficou muito claro, mas esse metodo pode ajudar no que você quer, que é trabalhar com campos calculados na query.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.