Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Selects, Joins Having y calculos...

Estas en el tema de Selects, Joins Having y calculos... en el foro de SQL Server en Foros del Web. saludos, tratare de ser breve. tengo las siguientes tablas: 1) Gestiones: Gestiones realizadas por gestores 2) Gestores: Maestro de Gestores 3) Resultados de las Gestiones: ...
  #1 (permalink)  
Antiguo 23/05/2008, 15:45
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Selects, Joins Having y calculos...

saludos, tratare de ser breve.
tengo las siguientes tablas:

1) Gestiones: Gestiones realizadas por gestores
2) Gestores: Maestro de Gestores
3) Resultados de las Gestiones: Cuando se hace una gestion esta tiene un resultado ej: a) Cliente no encontrado (no efectiva) b) Cliente Promete pagar (Efectiva) c) Cliente evade deuda (No efectiva) d) Cliente desea refinanciamiento (efectiva)
4) Niveles de Efectividad: 1- Efectivas o 2- no Efectivas

Se relacionan de la siguiente forma:
Gestiones - Gestores
Gestiones - Resultados de las gestiones
Resultados de las gestiones - Niveles de Efectividad

Ok, de estas tablas necesito obtener un reporte de la siguiente forma:
Código HTML:
[Gestor]  [Nombre Gestor] [No Gestiones Efectivas] [No Gestiones Totales]

Toda esta info en un rango de fechas equis.
lo que tengo hasta el momento es lo siguiente, pero realmente no es como lo quiero, si alguien me puede ayudar a ordenarlo y obtener la info que necesito, se lo agradecere mucho.


Código:
declare @fecha_inicio datetime
declare @fecha_fin datetime

set @fecha_inicio='01/05/2008 00:00:00'
set @fecha_fin='31/05/2008 23:59:59'

select a.gestor_id,
b.gestor_nombre,
c.resultado_nombre,
count(a.resultado_id) as total_gestiones
FROM gestiones a
INNER JOIN gestores b ON (a.agencia_id=b.agencia_id
and a.gestor_id=b.gestor_id)
INNER JOIN resultados_gestiones c
ON (a.resultado_id=c.resultado_id AND c.nivel_efectividad_id=1)
WHERE 
convert(datetime,a.gestion_fecha,103)
BETWEEN convert(datetime,@fecha_inicio,103)
AND convert(datetime,@fecha_fin,103)

GROUP BY a.gestor_id,b.gestor_nombre,a.resultado_id,c.resultado_nombre
order by a.gestor_id asc
Pero esto me da una fila por gestor y Resultado y no es lo que quiero, yo quiero una fila x gestor con un total de resultados efectivos.... espero me halla explicado bien y que me puedan ayudar.
Muy agradecido
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #2 (permalink)  
Antiguo 23/05/2008, 15:51
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Respuesta: Selects, Joins Having y calculos...

creo que a veces leer lo que uno escribe ayuda mucho, bueno, lo resolvi con el siguiente codigo por si alguien pasa por aki

Código:
declare @fecha_inicio datetime
declare @fecha_fin datetime

set @fecha_inicio='01/05/2008 00:00:00'
set @fecha_fin='31/05/2008 23:59:59'

select a.gestor_id,
b.gestor_nombre,
d.nivel_efectividad_nombre,
count(*) as total_gestiones
FROM gestiones a
INNER JOIN gestores b ON (a.agencia_id=b.agencia_id
and a.gestor_id=b.gestor_id)
INNER JOIN resultados_gestiones c
ON (a.resultado_id=c.resultado_id AND c.nivel_efectividad_id=1)
INNER JOIN niveles_de_efectividad d
ON (c.nivel_efectividad_id=d.nivel_efectividad_id)
WHERE 
convert(datetime,a.gestion_fecha,103)
BETWEEN convert(datetime,@fecha_inicio,103)
AND convert(datetime,@fecha_fin,103)

GROUP BY a.gestor_id,b.gestor_nombre,c.nivel_efectividad_id,
d.nivel_efectividad_nombre
order by a.gestor_id asc
ahora bien, no es lo que queria pero ya es un buen adelanto, lo que me falta ahi, es el total de gestiones hechas por el gestor y luego dividir las efectivas entre el total para obtener un porcentaje... aki si ya me bloquee.... a ver si alguien me ayuda por favor
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:53.