Problemas con una consulta SQL

Fran
27 de Septiembre del 2004
Tengo un gran dilema que no consigo resolver:

Vereis, yo tengo una tabla principal de proveedores y luego cuatro tablas relacionadas con esta, facturas_validas, facturas, contratos_validos y contratos. Bien estoy creando un formulario de búsqueda de manera que pueda buscar aquellos proveedores que cumplan una serie de condiciones como por ejemplo: proveedores cuya suma total (del importe) de facturas validadas sea mayor que 400, en SQL sería
SELECT p.* FROM proveedores p, facturas_validas fv WHERE p.num_proveedor = fv.num_proveedor GROUP BY p.num_proveedor HAVING SUM(fv.total) > 400. El problema está cuando quiero meter otra condición como por ejemplo: además la suma total (importes) de contratos sea menor que 200:
SELECT p.* FROM proveedores p, facturas_validas fv, contratos s WHERE p.num_proveedor = fv.num_proveedor AND p.num_proveedor = c.num_proveedor GROUP BY p.num_proveedor HAVING SUM(fv.total) > 400 AND SUM(c.total) < 200. Aquí esta el problema, que esta SQL no me muestra exáctamente lo que quiero pues si lo pensais bien pudiera ser que tenga dos facturas validadas y dos contratos, por lo que me sacaría 4 facturas validadas (dos se repiten) y cuadro contratos (dos se repiten) y por lo tanto la suma me la está suplicando, no se si me he explicado bien.
Alguien me puede ayudar a resolver esta duda??.