Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Multiplicar Diferentes Count

Estas en el tema de Multiplicar Diferentes Count en el foro de Mysql en Foros del Web. Hola a Todos, Tengo un problemon que no se como resolver tengo una tabla con 4 campos ticket/simbolo/apertura/cierre/ 1/clp/2009-07-01 00:00:00/'2009-07-12 00:00:00' 2/clp/2009-07-01 00:00:00/'2009-07-13 00:00:00' 3/clp/2009-07-01 ...
  #1 (permalink)  
Antiguo 09/09/2009, 18:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Multiplicar Diferentes Count

Hola a Todos,


Tengo un problemon que no se como resolver


tengo una tabla con 4 campos


ticket/simbolo/apertura/cierre/

1/clp/2009-07-01 00:00:00/'2009-07-12 00:00:00'
2/clp/2009-07-01 00:00:00/'2009-07-13 00:00:00'
3/clp/2009-07-01 00:00:00/'2009-07-16 00:00:00'


lo que necesito es que todas los ticket que se hicieron (abierto y cerrado) antes del dia 2009-07-15 se cuenten por dos.

Código:
SELECT TABLA.simbolo,
if( (TaBLA.apertura between '2009-07-01 00:00:00' and '2009-09-15 00:00:00') and (TABLA.cierre between '2009-07-01 00:00:00' and '2009-09-15 00:00:00'), count(TABLA.Ticket) * 2, '') as Operacion_Cerrada,
if( ((TABLA.close_time > '2009-07-015 00:00:00')) , count(TABLA.Ticket)', '') as Operacion_No_Cerrada
FROM `mt4_trades`
where  TABLA.simbolo = 'CLP';
y lo que aparece es solo


simbolo/Operacion_cerrada/Operacion_no_Cerrada
CLP/6/0


eso significa que toma las 3 operaciones como cerradas, aunque no es asi toma el primer if y multiplica todo por 2 siempre, siendo que hay una que no lo toma asi.

tome cada una de las sentencia y funcionan independientes entre si, pero no juntas.


necesito poder realizar esa cuenta

existe alguna manera mas facil?

saludos.
  #2 (permalink)  
Antiguo 09/09/2009, 19:20
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Multiplicar Diferentes Count

Hola,

Posiblemente te pueda funcionar de la siguiente forma:

Código:
select simbolo,
sum(
  if((apertura between '2009-07-01 00:00:00' and '2009-07-15 00:00:00') and
    (cierre between '2009-07-01 00:00:00' and '2009-07-15 00:00:00') and
    (close_time between '2009-07-01 00:00:00' and '2009-07-15 00:00:00'), 2, 1)
) from mt4_trades
where simbolo = 'CLP' group by simbolo;
La instrucción if devuelve 2 si las fechas están en el rango especificado, sino devuelve 1 en cada dupla, posteriormente suma ese resultado. (MySQL no necesita el 'group by' en este caso.)

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:36.