Jump to content


Photo

suma y division


  • Please log in to reply
1 reply to this topic

#1 andy

andy

    Member

  • Miembros
  • PipPip
  • 47 posts
  • Locationespana

Posted 03 April 2014 - 03:30 AM

Hola ya he solucionado lo de la suma gracias a ustedes, pero ahora me enfrento a algo nuevo, he tratarlo desde código Delphi pero desearía saber si desde la consulta sql lo puedo solucionar  y es que dos  de esas sumas la tengo que dividir para calcular una media y tambien el % pero la suma puede dar un valor 0 y claro no se puede dividir entre 0 alguien puede ayudarme. gracias le dejo el código para más información



delphi
  1. ROUND(SUM(CAST(campouno AS float)) + SUM(CAST(campodos AS float)), 1 / (SUM(CAST(campotres AS float)) + SUM(CAST(campocuatro AS float))), 1) AS Media_Total
  2. ((SUM(CAST(campotres AS float)) + SUM(CAST(campocuatro AS float)))* 100 / (SUM(CAST(campouno AS float)) + SUM(CAST(campodos AS float))) AS Porcentaje


  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 03 April 2014 - 08:55 AM

Hola Andy,
¿Cuál es el propósito de todos estos cálculos?
Estoy llegando a pensar que quizá sea lo más apropiado armar un procedimiento almacenado y/o emplear disparadores (triggers) que vayan efectuando las operaciones.

¿Porqué te lo comento? Porque cuando se intenta o se pretende hacer que una consulta realice una serie de operaciones que no son tan elementales, o un tanto rebuscadas es un síntoma de que posiblemente la tabla y sus campos no ha sido del todo refinada en la etapa del análisis.
Quizá habría que considerar otra forma de encararlo. Y una de esas es el uso de tablas y/o campos adicionales que hagan de cálculos temporales a fin de que los cálculos finales sean más manejables. Mediante SP y triggers se puede conseguir esto.

Considero oportuno que nos comentes la problemática en forma global en lugar de ir atacando cada problemita de forma aislada y pretender unirlos todos después.
En ocasiones el bosque es lo que debe verse, y no cada árbol por separado.  ;)

Saludos,
  • 0




IP.Board spam blocked by CleanTalk.