GARANTIR DESCONTO

Fórum Executando uma expressão como SQL #50079

24/03/2005

0

Olá!

Estou executando a seguinte expressão SQL:

SELECT (42.300.10*90)/100 FROM RDB$DATABASE


Quando eu usava Firebird 1.0 isso costumava funcionar, mas fiquei muito tempo sem precisar fazer isso. O erro que está dando é o seguinte:

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 9
4

Agora estou usando firebird 1.5 e essa mensagem é retornada pra mim no IBOConsole. Alguém sabe como posso fazer esse cálculo por SQL?

Valeu!


Delphi32

Delphi32

Responder

Posts

25/03/2005

Raserafim

42 (ponto) 300 (ponto) 10 (ponto) porque esses pontos?
se fosse multiplicação deveria ser asterisco!
se fosse 42 milhões e 300 mil e 10, o último ponto deveria ser uma vírgula!

foi mal, mas não entendi.


Responder

Gostei + 0

25/03/2005

Delphi32

se fosse 42 milhões e 300 mil e 10, o último ponto deveria ser uma vírgula!


Sim, esse número representa 42 milhões e 300 mil e 10. Mas na verdade não poderia ser vírgula não. Porque a vírgula é o separador de colunas no select. Veja bem, se eu executar:

SELECT (42.300,10*90)/100 FROM RDB$DATABASE
/*REPARE QUE EU COLOQUEI A VÍRGULA*/


Ele vai me retornar em uma coluna ´42.300´ (Que está antes da vírgula, ou melhor, ele entende como a primeira coluna que deve retornar) e retorna uma outra coluna com o resultado de 10*90/100 (isso se eu retirar os parênteses da SQL porque senão dá erro... Como eu faço pra representar esse número em SQL então???

Se pelo menos o Delphi tivesse alguma função como a EVAL do VB eu fazia isso pelo Delphi...

Alguma idéia???

Até!


Responder

Gostei + 0

25/03/2005

Bon Jovi

Pra calculos o único separador que se deve usar é para o decimal. Até numa calculadora simples é assim.

Entao fica assim:

SELECT (42300.10 * 90) / 100 FROM RDB$DATABASE


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar