SQL - problemas con and y or

   
Vista:

problemas con and y or

Publicado por Andres (6 intervenciones) el 20/07/2013 18:47:41
del siguiente enunciado
Mostrar aquellos empleados con fecha de alta posterior al 1 de Julio de 1985, con salario entre 150000 y 400000 y aquellos que no siendo analista pertenecen al departamento 20

select * from emp
where fecha_alt > '01-01-1985'
and salario between 150000 and 4000000
or (oficio <> 'ANALISTA' and dept_no = 20)

pruebo la consulta pero me muestra varios analistas del depto 20
que esta mal?
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 xve

problemas con and y or

Publicado por xve (238 intervenciones) el 21/07/2013 10:50:47
Hola Andres, creo que todo tendría que ser and, no?

algo así:
select * from emp
where fecha_alt > '01-01-1985'
and salario between 150000 and 4000000
AND oficio <> 'ANALISTA' and dept_no = 20

Coméntanos, ok?
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

problemas con and y or

Publicado por Andres (6 intervenciones) el 24/07/2013 01:23:10
me devuelve registros pero creo que por el enunciado deberían haber registros de sueldo entre 150000 y 4000000

estaba en el pdf así:

1. Mostrar aquellos empleados con fecha de alta posterior al 1 de Julio de 1985.
select * from emp
where fecha_alt > '01-01-1985'
2. Lo mismo que en el ejercicio 1 pero con salario entre 150000 y 400000.
select * from emp
where fecha_alt > '01-01-1985'
and salario between 150000 and 4000000
3. Igual que en el ejercicio 2, pero también incluimos aquellos que no siendo analista pertenecen al departamento 20.
select * from emp
where fecha_alt > '01-01-1985'
and salario between 150000 and 4000000
or (oficio <> 'ANALISTA' and dept_no = 20)

mi duda es el ejercicio 3
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