Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 16
shoulder Va por buen camino
Resta entre Campos

Una pregunta, no lo puedo solucionar, tengo un motor Mysql 5.0.67.

Tengo un select (sum(articulo * valor) - sum(articulo2 * valor)) as diferencia from ...todo dentro de un group by

si la diferencia no es cero el resultado me da perfecto, pero cuando es cero, en vez de mostrar o listar el numero cero me muestra algo parecido a 1.42850-e041

Gracias.
Responder Con Cita
  #2  
Antiguo 16-01-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por shoulder Ver Mensaje
select (sum(articulo * valor) - sum(articulo2 * valor)) as diferencia [...] pero cuando es cero, en vez de mostrar o listar el numero cero me muestra algo parecido a 1.42850-e041
No frecuento mucho que digamos MySQL pero parece que el resultado que te da es bastante normal, ya que las operaciones con valores de punto flotante arrojan siempre como resultado aproximaciones (el número que muestras es muy muy muy aproximado a 0).

Quizá lo que te falte es hacer un "Cast As..." (molde de tipo) a toda la expresión para acomodarla al tipo de resultado que necesitas:
Código SQL [-]
...Cast ((sum(articulo * valor) - sum(articulo2 * valor)) As Numeric (15, 2)) As Diferencia...

Nos dices si te funciona.

NOTA: Recuerda usar las etiquetas especiales (botones arriba del editor) para darle formato al código fuente que pongas.

Saludos.
Responder Con Cita
  #3  
Antiguo 16-01-2013
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 16
shoulder Va por buen camino
Restas entre Campos

Graciassss funciono, la verdad que no sabia como solucionarlo porque era ilogico para mi.
Te dejo como adapte el cast para que funcionara, con "as numeric" no funcionaba.

Cita:
Cast ((sum(articulo * valor) - sum(articulo2 * valor)) As Unsigned) As Diferencia
Responder Con Cita
  #4  
Antiguo 16-01-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Estupendo, gracias.

Es la retroalimentación que se espera siempre de quien alcanza una solución (es de ayuda para los que vienen luego).
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Resta de Campos timestamp amerika111 Firebird e Interbase 11 25-06-2011 20:38:36
resta entre dos fecha alfreyes Conexión con bases de datos 1 06-12-2008 04:00:12
Resta entre campos datetime ale_metall Varios 3 22-10-2007 21:15:19
resta entre fecha !! acertij022 Varios 16 03-08-2007 15:49:53
Condición Where con resta de 2 campos Johnny Q SQL 6 13-01-2006 19:02:57


La franja horaria es GMT +2. Ahora son las 22:19:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi