Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/03/2008, 05:32
seyko
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: 2 consultas sql

Persona(Nro_Doc, nombre)
Proyecto(id_proy, nom_proy)
Trabaja(Nro_Doc, id_proy)

select per.nombre, proy.nom_proy
from persona per
left join trabaja t on t.nro_doc = per.nro_doc
left join proyecto proy on proy.id_proy ?= t.id_proy

esto te saca todas las personas y el proyecto en el que han trabajado, si no han trabajado en ningun proyecto sale null

select per.nombre, count(distinct t.id_proy)
from persona per
join trabaja t on t.nro_doc = per.nro_doc
join proyecto proy on proy.id_proy ?= t.id_proy
where count(distinct t.id_proy) = (select count(distinct id_proy) from proyecto);

Esto te saca las personas que hayan trabajado en 'x' proyectos cuando 'x' sea el numero de proyectos que tienes registrado en la tabla proyecto. Es decir han trabajado en todos los proyectos.

Si no entiendes algo...
Un saludo