Hay tres tablas:
Tbl_servicios(id_servicio, valor,...)
tbl_servicios_inmuebles (id_servicio_inmueble, codigo_servicio, codigo_inmueble_es, fecha_expiracion_servicio,...)
inmuebles(id_inmueble,titulo,...)
Se relacionan asi:
tbl_servicios.id_servicio - tbl_servicios_inmuebles.codigo_servicio
inmuebles.id_inmueble - tbl_servicios_inmuebles.codigo_inmueble_es
Quisiera sacar todos los registros de la tabla inmuebles (tengan o no registros relacionados en la tabla tbl_servicios_inmuebles)más la suma del campo valor de la tabla tbl_servicios donde el campo fecha_expiracion_servicio sea mayor a la fecha del sistema, todo esto agrupado por id_inmueble.
La siguiente consulta funciona bien, pero solo muestra los registros de la tabla inmuebles que tienen registros relacionados en la tabla tbl_servicios_inmuebles, con lo cual no me sirve, el objetivo es ordenar todos los inmuebles por la suma de los valores de los servicios que tengan contratados.
Código SQL:
Ver original
SELECT inmuebles.*, COUNT(tbl_servicios_inmuebles.id_servicio_inmueble ) AS cuenta, SUM(tbl_servicios.valor )AS suma FROM inmuebles, tbl_servicios_inmuebles, tbl_servicios WHERE tbl_provincias.id_provincia=inmuebles.provincia AND tbl_municipios.id_municipio=inmuebles.municipio AND tbl_servicios.id_servicio=tbl_servicios_inmuebles.codigo_servicio AND tbl_servicios_inmuebles.codigo_inmueble_es=inmuebles.id_inmueble AND tbl_tipos_inmuebles.id_tipo_inmueble=inmuebles.cod_tipo_inmueble AND visible=1 GROUP BY id_inmueble ORDER BY ponderacion DESC, fecha_insercion, id_inmueble DESC LIMIT 0,10
Lo último que estoy probando es esta consulta, como veis no añado nada sobre la fecha pero no va. ¿Podeis echarme una manita con esto?
Código SQL:
[/I] Ver original
SELECT DISTINCT inmuebles.*, COUNT(c.codigo_inmueble_es) AS cuenta FROM `inmuebles` LEFT JOIN `tbl_servicios_inmuebles` AS `c` ON `c`.`codigo_inmueble_es` = `inmuebles`.`id_inmueble` GROUP BY id_inmueble LEFT JOIN tbl_servicios ON id_servicio=codigo_servicio GROUP BY codigo_inmueble_es GROUP BY id_inmueble