Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta - MSSQL -- no hay caso (https://www.clubdelphi.com/foros/showthread.php?t=4469)

Viet 16-10-2003 18:44:56

Consulta - MSSQL -- no hay caso
 
Buenas

Tengo una consultita que me esta poniendo loco

tablas : (aclaracion: este es un modelo simplificado, para que sea mas legible)

detalle (id_empleado, id_aplicacion, cantidad)
aplicaciones(id_aplicacion, id_grupo)
grupos(id_grupo, descripcion)
empleados(id_empleado, Nombre)

Lo que quiero obtener es la cantidad de aplicaciones por grupo y por empleado

mi consulta es:
Código:

        select  e.nombre , g.descripcion , sum(d.cantidad)
        from detalle d
                inner join aplicaciones a on (a.id_aplicacion=d.id_aplicacion)
                inner join grupos g on (g.id_grupo=a.id_grupo)
                inner join empleados e on (e.id_empleados=d.id_empleado)
        group by
                e.nombre, g.descripcion

Por lo que yo veo esta todo bien, pero en ves de darme el total por grupo para cada empleado, me da por cada empleado, el total que existen por grupo, por cada grupo.

Ejemplo:

detalle
empleado aplicacion cant
1 1000 5
1 1002 6
2 1000 10
2 1002 7
2 1003 3

empleados

id nombre
1 pepe
2 juan

aplicaciones
id grupo
1000 1
1002 2
1003 1

grupos
id descrip
1 grupo1
2 grupo2

esto me tendria que dar

nombre grupo cant
pepe grupo1 5
pepe grupo2 6
juan grupo1 13
juan grupo2 7

sin embargo me da

nombre grupo cant
pepe grupo1 18
pepe grupo2 13
juan grupo1 18
juan grupo2 13


Les juro que no he tomado nada con alcohol... y segun mis calculos esto esta muy mal.... la verdad es que no puedo ver donde esta el problema ??? y sin embargo me parece una consulta por demas simple....

Gracias por su tiempo ... y perdonen que es tan largo la consulta pero queria explicar bien el caso.. ;)

guillotmarc 16-10-2003 21:38:24

Hola Viet.

Prueba a poner la consulta completa, sin simplificar, porqué esta se ve bien. No le sé encontrar ningun problema. ¿ Tambien falla ?

Saludos.

Viet 16-10-2003 21:56:56

Hola Marc (haber cuando encuentro una consulta tuya asi empiezo a pagarte los favores.... aunque van a tener que ser unas cuantas)

ahi va la consulta
Código:

select  top 10
    e.id_empleado,
    0,
    a.id_grupo_aplicaciones,   
    SUM(ai.callsanswered) AS callsanswered,
    max(ll.hora)

from a_iagentbyapplicationstat ai
    inner join aplicaciones a on (a.id_aplicacion=ai.applicationid)
    inner join grupo_aplicaciones g on(a.id_grupo_aplicaciones=a.id_grupo_aplicaciones)
    inner join empleados e on (e.id_symposium=ai.agentlogin)
    inner join a_llamadas ll on (ll.id_empleado=e.id_empleado)

group by
    e.id_empleado,
    a.id_grupo_aplicaciones

es practicamente lo mismo o incluso mas simple

__cadetill 17-10-2003 14:31:35

Supongo que será un problema de tecleo, pero en segundo inner join estás utilizando la misma tabla en la comparación.

Viet 17-10-2003 14:36:18

Cadetill un millon de gracias !!!.... la verdad es que ese tipo de errores me matan ...

Saludos desde Aquí !;)

__cadetill 17-10-2003 15:08:49

Cita:

Posteado originalmente por Viet
la verdad es que ese tipo de errores me matan ...
Todos los errores fueran como ese :p


La franja horaria es GMT +2. Ahora son las 08:04:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi