Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/05/2012, 12:27
kronos1198
 
Fecha de Ingreso: mayo-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 0
Respuesta: Seleccionar el registro moda de un campo pero con un pequeño inconveniente

Cita:
Iniciado por jurena Ver Mensaje
creo que no te has explicado del todo bien. ¿Qué es exactamente lo que quieres obtener? Tu tabla se llama registros y en el campo importe los valores superiores son 1200 y 100; en el campo registro ambas tienen un valor 3 y dices querer omitir algo, si explicarlo, y no dices por qué. ¿Cuál debería ser el resultado y por qué, dinos eso?
Mira, tengo una tabla de una nomina, que tiene como campos Categoria, Concepto, Importe y Registros. De eso tengo que obtener el importe MODA y para eso hago esto:

1. Selecciono los conceptos y los agrupo para saber cuantos hay de cada categoria con su correspondiente concepto (aqui no tomo en cuenta el importe)...
CATEG CTO REG
A01803 07 907
A01805 07 38
A01806 07 633
A01807 07 373

2. De ahi ahora agrupo para saber cuantas categorias hai con su concepto respectivo y sus importes, algo asi:
CATEG CTO IMPORTE REG
A01803 07 -4486.1 2
A01803 07 -2243.05 1
A01803 07 2243.05 855
A01803 07 6729.15 14
A01803 07 8972.2 14

3. Ahora de ahi tengo que sacar cual es el importe MODA de cada categoria con su concepto, por ejemplo en los registros anteriores el importe MODA es el que tiene 855 registros con ese importe ya que es el que mas personas tienen.. todo iba bien hasta que me di cuenta de un problemita, mi consulta para sacar la moda era esta:

select Categoria, Concepto, Importe, MAX(Registros) AS Registros FROM dispersion07 group by Categoria, Concepto order by Categoria, Concepto

pero a la hora de analizarla bien me di cuenta que podria tener una falla y es cuando me encuentre con casos como este:

MA01026 07 1996.35 1
MA01026 07 2040.42 1

esta categoria tiene 2 registros pero con importe diferente osea que no hay moda y lo que me muestra con la consulta anterior es solo el primer registro, tambien se podria dar el siguiente caso:

MA01026 07 1996.35 3
MA01026 07 2040.42 3
MA01026 07 1000.35 3
MA01026 07 800.42 2

y en este caso si hay numero mayor de registros pero su importe es diferente por lo tanto no puedo tomar el 3 como MODA y mi consulta me da el primer registro de esos 4 osea el MA01026 07 1996.35 3...

ahora bien, lo que quiero es que tome el registro moda de cada categoria osea el que mas registros tiene con el mismo importe pero que me omita ese tipo de casos antes mencionados...

Gracias por la atencion espero y ahora si me haya explicado..

Última edición por kronos1198; 26/05/2012 a las 12:31 Razón: falta texto xD