SQL Server - Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

   
Vista:

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Eloisa Almendro (4 intervenciones) el 10/11/2014 15:52:20
Tengo dos tablas Una: Proyectos, con los campos Id_Proyecto, Título, Clase
Otra: Personas, con los campos Id_Proy, Nombre, Oficio.
Necesito extraer proyectos donde intervengan dos personas determinadas, pero sólo en los que intervengan los dos.
Yo he intentado:
SELECT * FROM Proyectos INNER JOIN Personas ON (Proyectos.Id_Proyecto=Personas.Id_Proy) WHERE Personas.Nombre="Eloisa" OR Personas.Nombre="Pedro".

Pero, obviamente, esto me da todos los que intervienen uno u otro pero yo necesito sólo los que intervienen los dos, teniendo el mismo Id_Proy. Si en vez de OR pongo AND no funciona.

Por favor, ¿alguien sabe como resolverlo?.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Isaias (3180 intervenciones) el 10/11/2014 17:03:34
Simple, cambia el OR por el AND
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Eloisa Almendro (4 intervenciones) el 10/11/2014 19:57:45
Muchísimas gracias, Isaías por tu rápida respuesta.
Como explicaba al principio, si cambio OR por AND no funciona.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por jams (75 intervenciones) el 10/11/2014 17:53:55
buenos dias

para poner en contexto los registros en los que intervienen las 2 personas que tienen en el campo de nombre?, si estan algo como esto Eloisa/Pedro entonces solo deberas poner una sola condicion

where personas.nombre = 'Eloisa/Pedro'


Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Eloisa Almendro (4 intervenciones) el 10/11/2014 20:06:08
Claro, pero el problema es que el campo nombre no está en esa forma 'Eloisa/Pedro', sino que cada uno va en diferente fila, es decir, hay varias filas con 'Eloisa', varias con 'Pedro', pero sólo algunas el mismo Id_Proy en una y otro, y ésas son las que necesito sacar.

De todas formas, muchísimas gracias, jams, por tu colaboración y sobre todo por la rapidez.

Saludos y hasta la próxima.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Isaias (3180 intervenciones) el 10/11/2014 23:29:57
¿Puedes postear algún ejemplo de tus datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias Islas

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Isaias Islas (3180 intervenciones) el 11/11/2014 00:04:50
"Jugando" con tus datos

create table #proyectos (id int, proyecto_descripcion varchar(50))
create table #personas (idProyecto int, idPersona int, Nombre varchar(50))


insert into #proyectos values (1, 'aeropuerto')
insert into #proyectos values (2, 'carretera')
insert into #proyectos values (3, 'edificio')

insert into #proyectos values(1, 1, 'Eloisa')
insert into #personas values(1, 2, 'Juan')
insert into #personas values(2, 1, 'Eloisa')
insert into #personas values(3, 1, 'Eloisa')
insert into #personas values(3, 2, 'Juan')



SELECT * FROM #proyectos pro inner join #personas per on pro.id = idProyecto
inner join (select IdProyecto from #personas where nombre = 'Juan') as x on pro.id = x.idProyecto
where per.Nombre = 'Eloisa'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Eloisa Almendro (4 intervenciones) el 11/11/2014 18:14:29
Muchísimas gracias de nuevo, Isaías.

Gran idea ese anidamiento y funciona bien con este ejemplo.
Ahora solo tengo que aplicarlo al resto de la estructura de mi base de datos, que no detallo por ser un poco pesada.

Saludos y hasta otra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias Islas

Seleccionar sólo los registros que tengan el mismo valor en un determinado campo

Publicado por Isaias Islas (3180 intervenciones) el 11/11/2014 18:53:26
De nada, si hubiera oportunidad de ayudarte mas adelante, solo pídelo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar