Ver Mensaje Individual
  #13 (permalink)  
Antiguo 02/04/2014, 02:07
emiliochu
 
Fecha de Ingreso: marzo-2014
Mensajes: 11
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: consulta sacando datos de tres tablas

Soy consciente de que esta consulta:

Código SQL:
Ver original
  1. SELECT i.id_inmueble, COUNT(c.codigo_inmueble_es) cuenta, ts.id_servicio, SUM(ts.valor) totalServicio
  2. FROM `inmuebles` i LEFT JOIN `tbl_servicios_inmuebles` `c` ON i.`id_inmueble` = `c`.`codigo_inmueble_es`
  3. INNER JOIN tbl_servicios ts ON c.codigo_servicio = ts.id_servicio
  4. WHERE `c`.`codigo_inmueble_es` IS NULL
  5. GROUP BY i.id_inmueble
  6.  ORDER BY 2 DESC

Solicita a la tabla inmuebles todos los registros que no tienen servicios asociados, la hice intencionadamente porque en la esa tabla hay 60 registros y sólo 16 de ellos tienen servicios asociados en la tbl_servicios_inmuebles. por tanto la consulta anterior debería arrojar 44 registros desde mi opinión y devuelve 0.

Por otra parte, la siguiente consulta,

Código SQL:
Ver original
  1. SELECT i.id_inmueble, COUNT(c.codigo_inmueble_es) cuenta, IFNULL(ts.id_servicio, 0) id_servicio, IFNULL(SUM(ts.valor), 0.0) totalServicio
  2. FROM `inmuebles` i
  3. LEFT JOIN `tbl_servicios_inmuebles` c ON i.`id_inmueble` = `c`.`codigo_inmueble_es`
  4. INNER JOIN tbl_servicios ts ON c.codigo_servicio = ts.id_servicio WHERE TRUE OR `c`.`codigo_inmueble_es` IS NULL
  5. GROUP BY i.id_inmueble
  6. ORDER BY 2 DESC, 1 ASC

Continúa mostrando tan solo 16 registros, según entiendo, en teoría debería mostrar todos los de la tabla inmuebles, pero en la práctica no es el caso.

¿Es posible que esto sea causado por algún defecto en la creación de la estructura de las tablas, tipos o algo similar?

Última edición por gnzsoloyo; 04/04/2014 a las 07:15