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

 
Vista:
sin imagen de perfil

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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

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

Publicado por Isaias (4558 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
sin imagen de perfil

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 (93 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
sin imagen de perfil

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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

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

Publicado por Isaias (4558 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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

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

Publicado por Isaias Islas (4558 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
sin imagen de perfil

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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

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

Publicado por Isaias Islas (4558 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