Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/03/2011, 17:00
GNULinux
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Necesito ayuda con unas consultas que no me salen.

Cita:
Iniciado por Heimish2000 Ver Mensaje
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
Funciono todo perfecto, gracias por tu tiempo y por la prolijidad en la explicación.