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

sumar el total de dos tipos de campos diferentes

Estas en el tema de sumar el total de dos tipos de campos diferentes en el foro de Mysql en Foros del Web. tengo una tabla con un dos campos uno es la cantidad y el otro el tipo, el tipo puede ser tres diferentes, ventas,cancelaciones,reservas, el campo ...
  #1 (permalink)  
Antiguo 26/01/2016, 04:18
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
sumar el total de dos tipos de campos diferentes

tengo una tabla con un dos campos uno es la cantidad y el otro el tipo, el tipo puede ser tres diferentes, ventas,cancelaciones,reservas, el campo la cantidad seria numerico, necesito saber el total de ventas, cancelaciones y reservas. Hasta hora solo use un mismo tipo la consulta es la siguiente:
Código MySQL:
Ver original
  1. SELECT SUM(cantidad) as total FROM empresa WHERE tipo="ventas"

En resumen si quiero añadir otro tipo de campo para contar su totalidad como deberia hacerlo en la misma consulta, o es mejor hacerlo por separado?
saludos
  #2 (permalink)  
Antiguo 26/01/2016, 06:20
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: sumar el total de dos tipos de campos diferentes

Podrías probar algo como

Código MySQL:
Ver original
  1.              SUM(CASE WHEN tipo= 'ventas' THEN cantidad ELSE 0 END) AS ventas,
  2.              SUM(CASE WHEN tipo= 'reservas' THEN cantidad ELSE 0 END) AS reservas
  3.              ..............
  4. FROM empresa
  #3 (permalink)  
Antiguo 26/01/2016, 06:23
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: sumar el total de dos tipos de campos diferentes

Consegui montar la sql y funciona pero necesito otro dato muestro la sql que realice.

Código MySQL:
Ver original
  1.    SUM(IF(tipo = 'ventas', cantidad, 0)) as total_ventas,
  2.    SUM(IF(tipo = 'cancelaciones', cantidad, 0)) as total_cancelaciones,
  3.    SUM(IF(tipo = 'reservas', cantidad, 0)) as total_reservas
  4. FROM empresa

Pero a mas a mas tengo un campo fecha y quiero mostrar la fecha mas reciente pero solo la lultima de toda la tabla, eso si que no se si podria realizarlo con la misma consulta o ya tendria que crear otra o programar, cualquier ayuda se agradece, saludos.
  #4 (permalink)  
Antiguo 26/01/2016, 06:24
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: sumar el total de dos tipos de campos diferentes

Cita:
Iniciado por ZedGe1505 Ver Mensaje
Podrías probar algo como

Código MySQL:
Ver original
  1.              SUM(CASE WHEN tipo= 'ventas' THEN cantidad ELSE 0 END) AS ventas,
  2.              SUM(CASE WHEN tipo= 'reservas' THEN cantidad ELSE 0 END) AS reservas
  3.              ..............
  4. FROM empresa
Gracias no te vi, estudiare con detalle tu consulta, lee mi post que tengo otro problemilla.
  #5 (permalink)  
Antiguo 26/01/2016, 06:37
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: sumar el total de dos tipos de campos diferentes

Ya esta solucionado:
Código MySQL:
Ver original
  1.    MAX(fecha) as ultima_fecha,
  2.    SUM(IF(tipo = 'ventas', cantidad, 0)) as total_ventas,
  3.    SUM(IF(tipo = 'cancelaciones', cantidad, 0)) as total_cancelaciones,
  4.    SUM(IF(tipo = 'reservas', cantidad, 0)) as total_reservas
  5. FROM empresa

Este tipo de consultas es aconsejable, ya que uso muchas funciones en la misma, cualquier aclaracion estaria bien, saludos.
  #6 (permalink)  
Antiguo 27/01/2016, 12:20
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: sumar el total de dos tipos de campos diferentes

Hola estoy viendo que esta consulta es muy lenta, teniendo un millon de registros, en la tabla solo tengo la PK, que podria hacer para que tardara menos la consulta?
saludos
  #7 (permalink)  
Antiguo 28/01/2016, 06:59
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: sumar el total de dos tipos de campos diferentes

Puedes crearle indices a tu tabla para ver si mejora

Indices

Etiquetas: campo, campos, select, tabla
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 08:21.