Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2007, 11:21
dblanco
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
COUNT() me suma 1 registro de mas por tabla

Hola,

tengo una tabla con poblaciones (t4_poblaciones) y otras dos con datos relacionados con esa poblacion (t1_casas y t2_pisos). El caso es que me interesa crear una lista con el nombre de las poblaciones (t4_poblacion) que tienen casas y pisos y que me sumen el total. Para ello hago la siguiente consulta:

Cita:
strSQL = "SELECT t4_poblacion, COUNT(t4_poblacion) AS suma FROM t4_poblaciones, t2_pisos, t1_casas WHERE t4_idprovincia=" & provincia & " AND ( (t4_poblacion = t2_poblacion AND t2_modalidad =" & modalidad &") OR (t4_poblacion = t1_poblacion AND t1_modalidad =" & modalidad &")) GROUP BY t4_poblacion ORDER BY t4_poblacion"
me funciona casi pefectamente, pero el problema es que me añade 1 a la suma por cada tabla que tiene alguna coincidencia. Si una de las dos tablas no tiene ninguna coincidencia no suma ese 1 de más. Y por supuesto si ninguna coincide no me sale nada, que es lo que pretendo.

Ejemplo:

Tarragona tengo 3 pisos y 1 casa, tendría que sumar 4 y me da 6
Barcelona 1 piso y 0 casas, tendría que sumar 1, pues da 2
Blanes 0 piso y 2 casas, tendría que sumar 2, pues me da 3


Espero vuestra ayuda, muchas gracias de antemano.