Pregunta de Sumas

04/07/2006 - 21:00 por LUCHO | Informe spam
Buenas tardes:

Muchachos, tengo la siguiente instrucción SQL:


SELECT USUARIOS.NombresUsuario AS NOMBRE, USUARIOS.ApellidosUsuario AS
APELLIDO,
REPORTESSERVICIOLLAMADAS.HorasLaborReporteServicio AS
HORAS_TRABAJO, REPORTESSERVICIOLLAMADAS.HorasDesplazamientoReporteServ AS
HORAS_DESPLAZAMIENTO,
ESTRUCTURAORGANIZACIONAL.UnidadOrganizacional AS
SUCURSAL
FROM USUARIOS INNER JOIN
REPORTESSERVICIO ON USUARIOS.CodigoUsuario REPORTESSERVICIO.CodigoUsuario INNER JOIN
REPORTESSERVICIOLLAMADAS ON
REPORTESSERVICIO.CodigoReporteServicio REPORTESSERVICIOLLAMADAS.CodigoReporteServicio INNER JOIN
LLAMADAS ON REPORTESSERVICIOLLAMADAS.CodigoLlamada LLAMADAS.CodigoLlamada INNER JOIN
ESTRUCTURAORGANIZACIONAL ON
LLAMADAS.CodUnicoOrganizacionalLlamada ESTRUCTURAORGANIZACIONAL.CodigoUnicoOrganizacional
WHERE (USUARIOS.TipoUsuario = 'I') AND (LLAMADAS.CodigoTipoServicio = 2)
ORDER BY USUARIOS.NombresUsuario


Al final me genera un conjunto de registros en el cual yo puedo ver cual ha
sido el tiempo efectivo de trabajo de la gente, persona a persona, labor por
labor.

Quisiera saber de que forma puedo agrupar esta consulta de modo que solo me
salga el nombre del empleado una sola vez y que me aparezca totalizadas la
cantidad de horas de trabajo por cada uno de ellos.

Agradezco su amable colaboración.

Atentamente



LUIS ANTONIO GOMEZ
e-BUSINESS DISTRIBUTION COLOMBIA S.A
Tel: 593 55 00 Ext. 15480
lgomez@ebd.com.co
 

Leer las respuestas

#1 Jorge Gonzalez
04/07/2006 - 23:00 | Informe spam
Lucho,

Te recomiendo leer la opción GROUP BY y las funciones de grupos ( SUM, MAX,
COUNT, AVG, ETC) en lo BOL.

Lo que deseas hacer, si lo entendí bien, es lo siguiente:

SELECT
USUARIOS.NombresUsuario AS NOMBRE,
USUARIOS.ApellidosUsuario AS APELLIDO,
ESTRUCTURAORGANIZACIONAL.UnidadOrganizacional AS SUCURSAL,
SUM ( REPORTESSERVICIOLLAMADAS.HorasLaborReporteServicio) AS HORAS_TRABAJO,
SUM ( REPORTESSERVICIOLLAMADAS.HorasDesplazamientoReporteServ) AS
HORAS_DESPLAZAMIENTO

FROM USUARIOS
INNER JOIN REPORTESSERVICIO ON USUARIOS.CodigoUsuario =
REPORTESSERVICIO.CodigoUsuario
INNER JOIN REPORTESSERVICIOLLAMADAS ON
REPORTESSERVICIO.CodigoReporteServicio =
REPORTESSERVICIOLLAMADAS.CodigoReporteServicio
INNER JOIN LLAMADAS ON REPORTESSERVICIOLLAMADAS.CodigoLlamada =
LLAMADAS.CodigoLlamada
INNER JOIN ESTRUCTURAORGANIZACIONAL ON
LLAMADAS.CodUnicoOrganizacionalLlamada =
ESTRUCTURAORGANIZACIONAL.CodigoUnicoOrganizacional
WHERE (USUARIOS.TipoUsuario = 'I') AND (LLAMADAS.CodigoTipoServicio = 2)
GROUP BY
USUARIOS.NombresUsuario AS NOMBRE,
USUARIOS.ApellidosUsuario AS APELLIDO,
ESTRUCTURAORGANIZACIONAL.UnidadOrganizacional AS SUCURSAL
ORDER BY USUARIOS.NombresUsuario, USUARIOS.ApellidosUsuario

Suerte

Jorge González

"LUCHO" escribió en el mensaje
news:
Buenas tardes:

Muchachos, tengo la siguiente instrucción SQL:


SELECT USUARIOS.NombresUsuario AS NOMBRE, USUARIOS.ApellidosUsuario
AS
APELLIDO,
REPORTESSERVICIOLLAMADAS.HorasLaborReporteServicio AS
HORAS_TRABAJO, REPORTESSERVICIOLLAMADAS.HorasDesplazamientoReporteServ AS
HORAS_DESPLAZAMIENTO,
ESTRUCTURAORGANIZACIONAL.UnidadOrganizacional AS
SUCURSAL
FROM USUARIOS INNER JOIN
REPORTESSERVICIO ON USUARIOS.CodigoUsuario > REPORTESSERVICIO.CodigoUsuario INNER JOIN
REPORTESSERVICIOLLAMADAS ON
REPORTESSERVICIO.CodigoReporteServicio > REPORTESSERVICIOLLAMADAS.CodigoReporteServicio INNER JOIN
LLAMADAS ON REPORTESSERVICIOLLAMADAS.CodigoLlamada > LLAMADAS.CodigoLlamada INNER JOIN
ESTRUCTURAORGANIZACIONAL ON
LLAMADAS.CodUnicoOrganizacionalLlamada > ESTRUCTURAORGANIZACIONAL.CodigoUnicoOrganizacional
WHERE (USUARIOS.TipoUsuario = 'I') AND (LLAMADAS.CodigoTipoServicio =
2)
ORDER BY USUARIOS.NombresUsuario


Al final me genera un conjunto de registros en el cual yo puedo ver cual
ha
sido el tiempo efectivo de trabajo de la gente, persona a persona, labor
por
labor.

Quisiera saber de que forma puedo agrupar esta consulta de modo que solo
me
salga el nombre del empleado una sola vez y que me aparezca totalizadas la
cantidad de horas de trabajo por cada uno de ellos.

Agradezco su amable colaboración.

Atentamente



LUIS ANTONIO GOMEZ
e-BUSINESS DISTRIBUTION COLOMBIA S.A
Tel: 593 55 00 Ext. 15480



Preguntas similares