Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2011, 01:55
Avatar de Heimish2000
Heimish2000
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Necesito ayuda con unas consultas que no me salen.

Para el punto uno te basta con hacer un GROUP BY de empresa.razon_soc

Código SQL:
Ver original
  1. SELECT empresa.razon_soc AS Empresa
  2. FROM empresa
  3. INNER JOIN emp_serv ON
  4. emp_serv.id_empresa=empresa.id
  5. INNER JOIN emp_act ON
  6. emp_act.id_empresa=empresa.id
  7. INNER JOIN servicio ON
  8. emp_serv.id_servicio=servicio.id
  9. INNER JOIN actividad ON
  10. emp_act.id_actividad=actividad.id
  11. WHERE servicio.nombre IN ('Comunicación', 'Hosting')
  12. GROUP BY empresa.razon_soc

Para el punto dos, partiendo de la del punto uno, puedes hacer una columna que sea COUNT(*) (a parte de la de la razón social) que te indicará el número de veces que aparece esa razón social. Si luego añades un HAVING por el número de apariciones que quieres (una por cada servicio), ya lo tendrás.

Código SQL:
Ver original
  1. SELECT empresa.razon_soc AS Empresa, COUNT(*) AS b
  2. FROM empresa
  3. INNER JOIN emp_serv ON
  4. emp_serv.id_empresa=empresa.id
  5. INNER JOIN emp_act ON
  6. emp_act.id_empresa=empresa.id
  7. INNER JOIN servicio ON
  8. emp_serv.id_servicio=servicio.id
  9. INNER JOIN actividad ON
  10. emp_act.id_actividad=actividad.id
  11. WHERE servicio.nombre IN ('Comunicación', 'Hosting')
  12. GROUP BY empresa.razon_soc
  13. HAVING b > 1