Usuário com melhor resposta
Efetuando calculo dinamico no SQL

Pergunta
-
Boa tarde amigos,
Estou com um problema que não sei se o SQL SERVER 2005 vai poder me ajudar do jeito que eu gostaria.
Minha situação é a seguinte.
Tenho uma consulta que possui o retorno como a que está abaixo:
select
'(10.0+6.0)/2'Gostaria de saber se é possível eu já retornar o resultado dessa consulta, no caso 8.
Grato pela atenção e tudo de bom a todos,
Leandro Amorim
Respostas
-
-
A familia Amorim esta presente no fórum.
Veja se este exemplo poderá ajudar:
Code SnippetCreate
Procedure P_Calcular @Valor1 Int, @Valor2 Int, @Operador Char(1)As
Begin Declare @Comando VarChar(100) Set @Comando='Select '+Convert(Varchar(3),@Valor1)+@Operador+Convert(Varchar(3),@Valor2) Exec(@comando) EndP_Calcular 10
, 2, '/' -
E ai primo!? hehehehehehe
Aqui em Campo Grande MS, principalmente o pessoal da colonia japonesa diz que quando não sabendo o parentesco de alguem que tem o mesmo nome que a gnt, chamamos de primo! Hehehehehehehe
Mas então.. eu cheguei a encontrar essa solução. A questão é que meu problema vai mais além um pouco.
No caso eu teria que listar os campos das notas e o resultado delas. O que acaba eliminando a solução que tu sugeriu, pois o EXEC não é aceito dentro de Select
O que eu preciso seria algo +/- assim:
Select
NT01, NT02, NT03, NT04, (EXEC ('SELECT ' + @Formula)) as ResultadoFrom TabNota
* supondo nesse exemplo que a formula estivesse somente com dados numéricos já.
Abração a todos e tudo bom.
Leandro Amorim
-
veja este outro exemplo
-- Create Table Exemplo (Campo int , Formula Varchar(20))
-- insert into Exemplo (Campo, Formula) Values (1, '(10.0+6.0)/2')Declare @Execute NVarchar(1000)
select @Execute = 'Select campo, ' + formula + ' From Exemplo' From Exemplo
Exec Sp_executeSql @Execute
Abs;
Todas as Respostas
-
-
A familia Amorim esta presente no fórum.
Veja se este exemplo poderá ajudar:
Code SnippetCreate
Procedure P_Calcular @Valor1 Int, @Valor2 Int, @Operador Char(1)As
Begin Declare @Comando VarChar(100) Set @Comando='Select '+Convert(Varchar(3),@Valor1)+@Operador+Convert(Varchar(3),@Valor2) Exec(@comando) EndP_Calcular 10
, 2, '/' -
E ai primo!? hehehehehehe
Aqui em Campo Grande MS, principalmente o pessoal da colonia japonesa diz que quando não sabendo o parentesco de alguem que tem o mesmo nome que a gnt, chamamos de primo! Hehehehehehehe
Mas então.. eu cheguei a encontrar essa solução. A questão é que meu problema vai mais além um pouco.
No caso eu teria que listar os campos das notas e o resultado delas. O que acaba eliminando a solução que tu sugeriu, pois o EXEC não é aceito dentro de Select
O que eu preciso seria algo +/- assim:
Select
NT01, NT02, NT03, NT04, (EXEC ('SELECT ' + @Formula)) as ResultadoFrom TabNota
* supondo nesse exemplo que a formula estivesse somente com dados numéricos já.
Abração a todos e tudo bom.
Leandro Amorim
-
veja este outro exemplo
-- Create Table Exemplo (Campo int , Formula Varchar(20))
-- insert into Exemplo (Campo, Formula) Values (1, '(10.0+6.0)/2')Declare @Execute NVarchar(1000)
select @Execute = 'Select campo, ' + formula + ' From Exemplo' From Exemplo
Exec Sp_executeSql @Execute
Abs;