SQL - Mostrar usuarios del departamento por el código de departamento.

 
Vista:
Imágen de perfil de nxdiaz
Val: 5
Ha disminuido su posición en 11 puestos en SQL (en relación al último mes)
Gráfica de SQL

Mostrar usuarios del departamento por el código de departamento.

Publicado por nxdiaz (3 intervenciones) el 10/10/2018 16:09:41
Muy buenos días comunidad, me gustaría despejar una duda que tengo ya que soy nuevo en el mundo sql. Mi supervisor me mando a crear una base de datos nueva y que haga una vista de una base de datos anterior para utilizarla, me ha salido perfectamente.
1
2
3
4
5
SELECT       A.CODIGOEMPLEADO, A.NOMBRE, A.APELLIDO, B.NOMBRE AS Departamento, B.CODIGODPT, C.NOMBRE AS Cargo
FROM            dbo.EMPLEADO AS A
INNER JOIN dbo.DEPARTAMENTO AS b ON B.CODIGODPT = A.CODIGODPT
 INNER JOIN dbo.CARGOS AS C ON C.CODIGOCARGO = A.CODIGOCARGO
WHERE        (A.ESTATUS = 'a')

En esta vista se ven el código,nombre,apellido,codigodepartamento y cargo del empleado. Me mandaron hacer un query que si un usuario por ejemplo con un código de dept 10 entra al sistema, tienen que mostrarse solamente los usuarios con código de departamento 10. Tengo una idea en mente que no logro desarrollar que seria

1
2
declare @codigoempleado
if codigoempleado exits (Aquí iría la instrucción de mostrar todos los empleado del usuario que entro)

si fuera a un dept especifico fuera fácil porque seria un select* from departamento codigodpt='10' and estatus='a'. De antemano muchas gracias.
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: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Mostrar usuarios del departamento por el código de departamento.

Publicado por Isaias (1921 intervenciones) el 10/10/2018 20:14:26
Antes que otra cosa, ¿Que motor de base de datos esta manejando?, el lenguaje SQL se utiliza en MUCHAS bases de 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 nxdiaz
Val: 5
Ha disminuido su posición en 11 puestos en SQL (en relación al último mes)
Gráfica de SQL

Mostrar usuarios del departamento por el código de departamento.

Publicado por nxdiaz (3 intervenciones) el 10/10/2018 20:41:33
Disculpe por no especificar , el lenguaje es sql server. Aunque estoy tratando de pensar en una solución y seria la siguiente, crear un procedure donde cappture al empleado asi:
1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE SP_Empleado
	@CODEMPLEADO as char(10)
AS
BEGIN
	SELECT A.CODIGOEMPLEADO, A.NOMBRE, A.APELLIDO, B.NOMBRE AS Departamento, B.CODIGODPT, C.NOMBRE AS Cargo
	FROM dbo.EMPLEADO AS A
	INNER JOIN dbo.DEPARTAMENTO AS B ON B.CODIGODPT = A.CODIGODPT
	INNER JOIN dbo.CARGOS AS C ON C.CODIGOCARGO = A.CODIGOCARGO
	WHERE A.ESTATUS = 'a' AND A.CODIGOEMPLEADO = @codempleado
END
GO
Al ejecutar el procedure
1
exec empleado '5050'
me traeria los datos que quiero, seria hacer una condición en el mismo procedure que con el codigo de empleado del usuario introducido me muestre todos los que tengan ese código de departamento. No se si me de a entender.
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 nxdiaz
Val: 5
Ha disminuido su posición en 11 puestos en SQL (en relación al último mes)
Gráfica de SQL

Mostrar usuarios del departamento por el código de departamento.

Publicado por nxdiaz (3 intervenciones) el 11/10/2018 13:52:31
La solución era la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
CREATE PROCEDURE SP_Empleado
	@CODEMPLEADO as char(10)
AS
BEGIN
	SELECT A.CODIGOEMPLEADO, A.NOMBRE, A.APELLIDO, B.NOMBRE AS Departamento, B.CODIGODPT, C.NOMBRE AS Cargo
	FROM dbo.EMPLEADO AS A
	INNER JOIN dbo.DEPARTAMENTO AS B ON B.CODIGODPT = A.CODIGODPT
	INNER JOIN dbo.CARGOS AS C ON C.CODIGOCARGO = A.CODIGOCARGO
	WHERE A.ESTATUS = 'a' AND B.CODIGOEMPLEADO = (SELECT CODIGODPT FROM EMPLEADO WHERE CODIGOEMPLEADO = @CODEMPLEADO)
 
END
GO

Gracias
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