SQL - Select en sql

   
Vista:

Select en sql

Publicado por Gerson (3 intervenciones) el 02/08/2016 21:46:31
Buenas tardes, tengo una tabla llamada indicentes en SQL la cual contiene el registro del id de 3 usuarios, el id del usuario de registra, el id del usuario que reporta y el id del usuario que ingresa, lo que quiero hacer es un select que me muestre ademas del numero del id del usuario tambien el nombre. El dato del nombre esta en una tabla que se llama empleado, pero tengo problemas al hacer el select, pueden ayudarme con el mismo adjunto parte del select, muchas gracias


Select incidentes.ID,ID_Sistema,
Sistemas.Descripcion,ID_Usuario_Reporta,Empleado.ID_Usuario,
ID_Usuario_Ingresa,Empleado.ID_Usuario,ID_Usuario_Asignado,Empleado.ID_Usuario,ID_Usuario_Reporta,Empleado.ID_Usuario,incidentes.Estado
from incidentes,Sistemas,Empleado
where Incidentes.ID_Sistema=Sistemas.ID and
Incidentes.ID_Usuario_Reporta=Empleado.ID and
Incidentes.ID_Usuario_Asignado=Empleado.ID and
Incidentes.ID_Usuario_Ingresa=Empleado.ID


Por decir algo en la tabla de empleados hay tres usuario con id 1, 2, y 3 y el id_usuario tiene un nombre.
En la tabla incidentes el registro numero 1 tiene el ID_Usuario_Ingresa el valor 1,el ID_Usuario_Asignado tiene el valor 2 y el ID_Usuario_Reporta tiene un 3 de valor

Se que el error anda con el where ya que condiciono con un and tres veces la sentencia por el id del usuario, pero no se como plantearlo parra que me muestre todos los incidentes de la tabal con el nombre respectivo del empleado.

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

Select en sql

Publicado por AG (2 intervenciones) el 02/08/2016 22:55:22
Que tal Gerson.

El SELECT que pretendes hacer no sale de forma directa, tienes que ligar varias veces la tabla EMPLEADO para conocer quien lo REPORTA, ASIGNA e INGRESA.

Te comparto un ejemplo, espero que pueda ayudarte.

Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
-------------------------------------------
-- Borramos las tablas temporales
-------------------------------------------
IF EXISTS( SELECT * FROM tempdb..sysobjects WHERE id = object_id('tempdb..#Incidentes'))
    DROP TABLE #Incidentes
 
IF EXISTS( SELECT * FROM tempdb..sysobjects WHERE id = object_id('tempdb..#Empleado'))
    DROP TABLE #Empleado
 
IF EXISTS( SELECT * FROM tempdb..sysobjects WHERE id = object_id('tempdb..#Sistemas'))
    DROP TABLE #Sistemas
 
-------------------------------------------
-- Creacion de tabla temporal
-------------------------------------------
CREATE TABLE #Incidentes
	(
	ID_Sistema			INTEGER
	, ID_Usuario_Ingresa		INTEGER
	, ID_Usuario_Asignado	INTEGER
	,  ID_Usuario_Reporta		INTEGER
	, Estado				VARCHAR(20)
	)
 
CREATE TABLE #Empleado
	(
	[ID]					INTEGER
	, Nombre				VARCHAR(60)
	)
 
CREATE TABLE #Sistemas
	(
	[ID]					INTEGER
	, Descripcion			VARCHAR(60)
	)
 
-------------------------------------------
-- Agregamos los registros
-------------------------------------------
INSERT INTO #Incidentes VALUES ( 1, 1, 2, 3, 'Inicial' )
 
INSERT INTO #Empleado VALUES ( 1, 'Juan Perez')
INSERT INTO #Empleado VALUES ( 2, 'Rodrigo Mora')
INSERT INTO #Empleado VALUES ( 3, 'Elisa Chapa')
 
INSERT INTO #Sistemas VALUES ( 1, 'Compras' )
 
 
-------------------------------------------
-- Realizamos el SELECT
-------------------------------------------
SELECT
	Incidentes.ID_Sistema,
	Sistemas.Descripcion,
	Incidentes.ID_Usuario_Reporta,
	Empleado_Reporta.Nombre,
	Incidentes.ID_Usuario_Ingresa,
	Empleado_Ingresa.Nombre,
	Incidentes.ID_Usuario_Asignado,
	Empleado_Asignado.Nombre,
	Incidentes.ID_Usuario_Reporta,
	Empleado_Reporta.Nombre,
	Incidentes.Estado
-- SELECT *
FROM
	#Incidentes Incidentes
	INNER JOIN #Sistemas	Sistemas
	ON ( incidentes.ID_Sistema	= Sistemas.Id )
 
	INNER JOIN #Empleado	Empleado_Reporta
	ON ( Incidentes.ID_Usuario_Reporta	= Empleado_Reporta.Id )
 
	INNER JOIN #Empleado	Empleado_Asignado
	ON ( Incidentes.ID_Usuario_Asignado	= Empleado_Asignado.Id )
 
	INNER JOIN #Empleado	Empleado_Ingresa
	ON ( Incidentes.ID_Usuario_Ingresa	= Empleado_Ingresa.Id )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Select en sql

Publicado por Gerson (3 intervenciones) el 02/08/2016 23:35:56
Muchas 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