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

usar la misma tabla en un query

Estas en el tema de usar la misma tabla en un query en el foro de Mysql en Foros del Web. Buen día, un gusto saludarles espero me puedan ayudar; les comento tengo las un problema a la hora de obtener la cantidad de copias, impresiones(color ...
  #1 (permalink)  
Antiguo 29/01/2013, 21:33
 
Fecha de Ingreso: enero-2013
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
usar la misma tabla en un query

Buen día, un gusto saludarles espero me puedan ayudar; les comento tengo las
un problema a la hora de obtener la cantidad de copias, impresiones(color y negro) de un usuario en una misma fila:
tengo la tabla:
t_detalle_contador(id_detalle,id_usuario,id_tipoOp eracion,negro,color),
t_tipooperacion(id_tipo,operacion)
(1,copias,)(2,impresiones)

mi pregunta es para obtener los datos de la siguiente forma como debo de hacer?
id_usuario|operacion|color|negro|operacion|color|n egro
1 copias 10 10 impresion 10 10

preveendo que si en algun caso no pueden tener copias o impresiones quedando asi:

id_usuario|operacion|color|negro|operacion|color|n egro
1 copias 0 0 impreson 10 10

id_usuario|operacion|color|negro|operacion|color|n egro
1 copias 10 10 impresion 0 0
  #2 (permalink)  
Antiguo 30/01/2013, 07:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: usar la misma tabla en un query

Código MySQL:
Ver original
  1. SELECT id_usuario,
  2. SUM(IF(id_tipoOperacion=1 AND negro=1,1,0) as copiasNegro,
  3. SUM(IF(id_tipoOperacion=1 AND negro=0,1,0) as copiasColor,
  4. SUM(IF(id_tipoOperacion=1,1,0) as TotalCopias,
  5. SUM(IF(id_tipoOperacion=2 AND negro=1,1,0) as impresionesNegro,
  6. SUM(IF(id_tipoOperacion=2 AND negro=0,1,0) as impresionesColor,
  7. SUM(IF(id_tipoOperacion=2,1,0) as TotalImpresiones
  8. FROM t_detalle_contador
  9. GROUP BY id_usuario;

Si los campos negro y color son booleanos esto funcionaria.

Si no son booleanos y en ellos tines el numero de copias/impresiones de cada operación...

Código MySQL:
Ver original
  1. SELECT id_usuario,
  2. SUM(IF(id_tipoOperacion=1,negro,0) as copiasNegro,
  3. SUM(IF(id_tipoOperacion=1,color,0) as copiasColor,
  4. SUM(IF(id_tipoOperacion=1,negro+color,0) as TotalCopias,
  5. SUM(IF(id_tipoOperacion=2,negro,0) as impresionesNegro,
  6. SUM(IF(id_tipoOperacion=2,color,0) as impresionesColor,
  7. SUM(IF(id_tipoOperacion=2,negro+color,0) as TotalImpresiones
  8. FROM t_detalle_contador
  9. GROUP BY id_usuario;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: query, soporte-y-sugerencias, tabla, usar
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:58.