Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Cálculo de un total mediante SELECT (https://www.clubdelphi.com/foros/showthread.php?t=76989)

rretamar 12-12-2011 17:51:52

Cálculo de un total mediante SELECT
 
Una consulta: tengo una tabla simple como la siguiente:

Código Delphi [-]
             Campo1   Campo2
registro #1:  45       0
registro #2:  23       22
registro #3:  43       0
registro #4:  154      12
registro #5:  65       0
registro #6:  3        0
registro #7:  11       0

Lo que necesito hacer es obtener la suma de los valores del primer campo (algo muy simple), pero en los registros en que el segundo campo es distinto de cero (por ejemplo en los valores 22 y 12 en los registros 2 y 4 respectivamente), es ese valor el que tengo que incluir en el total, ignorando los valores del campo1 para ese registro (23 y 154 en este ejemplo). ¿ Se puede hacer todo junto desde una única sentencia SELECT ?.

En la tabla de ejemplo, el total sería: 45 + 22 + 43 + 12 + 65 + 3 + 11

Desde ya, muchas gracias.


oscarac 12-12-2011 17:56:11

puedes usar un case

Código Delphi [-]
 
Select Sum (Case when Total2 = 0 then Total1 else Total2 end) as Importe from...

rretamar 12-12-2011 18:04:16

Muchas gracias por la pronta respuesta !!!

Lo pondré en práctica.

oscarac 12-12-2011 18:13:05

ok
comentas si es lo que necesitas o quiza falte afinar algun detalle:cool:

olbeup 12-12-2011 21:39:16

Esto es SQL SERVER, no se cómo será en MySQL
Código SQL [-]
SELECT TOP 1
    (SELECT 
         SUM(CAMPO1) 
       FROM TablaCampos 
       WHERE CAMPO2 = 0) + 
    (SELECT 
         SUM(CAMPO2) 
       FROM TablaCampos 
       WHERE CAMPO2 <> 0
    ) AS TOTALCAMPOS
  FROM TablaCampos
Un saludo.

rretamar 13-12-2011 14:38:34

Cita:

Empezado por oscarac (Mensaje 420965)
puedes usar un case:
Código Delphi [-]
Select Sum (
          Case 
            when Total2 = 0 
            then 
              Total1 
            else 
              Total2 
          end
                 ) as Importe from...

Funcionó perfecto, muchas gracias. Me ahorró mucho tiempo, porque pensaba hacer dos sentencias SELECT y después con una tercerca calcular el total. Esta solución en cambio es breve y elegante. Así da gusto.

Agradezco también por la segunda alternativa. :)

Saludos !

oscarac 13-12-2011 14:56:43

por fin pude contestar a una respuesta!!!!!!!

:D:D:D:D:D:D:D:D:D

rretamar 15-12-2011 05:13:10

Cita:

Empezado por oscarac (Mensaje 421018)
por fin pude contestar a una respuesta!!!!!!!

:D:D:D:D:D:D:D:D:D

No sólo respondiste una pregunta, sino que brindaste una solución muy buena. :)

Nuevamente ,gracias.


La franja horaria es GMT +2. Ahora son las 16:35:56.

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