SQL Server - Como hacer una consulta con if else o con case

 
Vista:
Imágen de perfil de nayely

Como hacer una consulta con if else o con case

Publicado por nayely (5 intervenciones) el 08/07/2015 23:46:07
Hola buenas tardes, les estaría muy agradecida si me ayudan con un pequeño problema que tengo.
Bueno, mi consulta se trata de mostrar el cargo de una persona dependiendo del sexo del trabajador, el problema es que no puedo usar un procedure porque el jaspersoft no me detecta el cambio de parametro y lo quiero hacer en una consulta.

Mis tablas son:

Administrativo
______________________
id_adm | id_sexo | id_cargo |
______________________
--1111---------- 1------ 1
--2222----------2------- 2
--3333----------2--------3

Personal_cargos
_____________________________
|id_cargo| ncargo | ncargo_femenino |
______________________________
---1--------becario--------- becaria
---2--------Secretario----- secretaria
---3--------Jeje-------------- jefa

Si el id_Sexo es 1 es para MASCULINO y si id_Sexo es 2 es para FEMENINO, en mi consulta solo quiero que solo me muestre, el cargo dependiendo del sexo.
Ejemplo, si estoy buscando el id_adm =1111 y su id_sexo es 1, quiero que solo me muestre de la tabla "Personal_Cargos" el ncargo (porque este corresponde para el hombre).

Les dejo mis consultas por separado, que no se como juntarlas.

select dbocar.ncargo
from administrativos dboadm
inner join cat_cargos dbocar on dboadm.id_cargo=dbocar.id_cargo
where id_sexo=1 and id_administrativo=10

select dbocar.ncargo_femenino
from administrativos dboadm
inner join cat_cargos dbocar on dboadm.id_cargo=dbocar.id_cargo
where id_sexo=2 and id_administrativo=16


Espero su respuesta, y muchas gracias por su ayuda.
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

Como hacer una consulta con if else o con case

Publicado por nayely (1 intervención) el 09/07/2015 00:17:51
Muchas gracias, pero ya lo resolví. Solo era hacer esto.

select
(case when id_sexo=1
then ncargo when id_sexo=2 then ncargo_femenino end) as cargo
from dbo.administrativos dboadm
inner join dbo.cat_cargos dbocar on dboadm.id_cargo=dbocar.id_cargo
where id_administrativo=22
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