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

[SOLUCIONADO] Consultar diferencia entre valores de una misma tabla

Estas en el tema de Consultar diferencia entre valores de una misma tabla en el foro de Mysql en Foros del Web. Buenas tardes, soy nuevo por aqui y ya ando dando guerra.. Tengo un problemita con una consulta en mi base de datos ojala me puedan ...
  #1 (permalink)  
Antiguo 11/02/2014, 12:11
 
Fecha de Ingreso: febrero-2014
Ubicación: Xalapa
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Consultar diferencia entre valores de una misma tabla

Buenas tardes, soy nuevo por aqui y ya ando dando guerra..
Tengo un problemita con una consulta en mi base de datos ojala me puedan ayudar GRACIAS.

Tengo una tabla con la siguiente estructura:

ctg_juzgados
id_juzgado (INT)
descripcion_juzgado (VARCHAR)
cantidad_promociones (INT)
id_distrito (INT)
id_tipojuzgado (INT)

Lo que necesito es realizar una consulta que me arroje los juzgados que en cantidad_promociones tengan una diferencia menor a 5.

Por ejemplo. tengo el al juzgado 1 con 30 cantidad_promociones y tengo el juzgado 2 con 20 cantidad_promociones y al juzgado 3 con 22 cantidad_promociones necesito que me muestre solo el juzgado 2 y 3 porque el juzgado 1 ya tiene mas de 5 promociones de diferencia con respecto a los otros.
  #2 (permalink)  
Antiguo 12/02/2014, 02:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Consultar diferencia entre valores de una misma tabla

juzgado 1= 30 cantidad_promociones
juzgado 2= 20 cantidad_promociones
juzgado 3= 22 cantidad_promociones
juzgado 4= 32 cantidad_promociones

Que hay que listar ahora?

Una opción seria dar un valor y buscar los que se separen menos de una catidad.... por ejemplo

Código MySQL:
Ver original
  1. SELECT AVG(cantidad_promociones) FROM juzgados

Esto nos da la media

Luego podrias usar ese valor para encontrar los que esten a más/menos 2,5 (asi la distáncia entre ellos será como máximo 5).

Se puede usar esa consulta como una subquery pero la query seria muy lenta, yo obtendría el valor y construiria la query con el

Código MySQL:
Ver original
  1. SELECT * FROM juzgados WHERE cantidad_promociones>=valormedia-2.5 AND cantidad_promociones<=valormedia+2.5;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 13/02/2014 a las 02:58
  #3 (permalink)  
Antiguo 12/02/2014, 10:30
 
Fecha de Ingreso: febrero-2014
Ubicación: Xalapa
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consultar diferencia entre valores de una misma tabla

Muchas gracias quimfv, lo probare y te comentare de que manera me trabaja gracias!
  #4 (permalink)  
Antiguo 13/02/2014, 10:20
 
Fecha de Ingreso: febrero-2014
Ubicación: Xalapa
Mensajes: 3
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consultar diferencia entre valores de una misma tabla

Gracias de nuevo por la ayuda, comento ya para cerrar por si alguien en algún momento necesita algo así, lo que estoy haciendo es un sistema aleatorio de carga de trabajo para juzgados entonces la carga de trabajo siempre debe de estar equilibrada entonces cada vez que hago un registro ejecuto esta consulta:
Código MySQL:
Ver original
  1. SELECT id_juzgado, cantidad_promociones
  2. FROM ctg_juzgados
  3. WHERE id_distrito=$id_dis AND id_tipojuzgado=$instancia
  4. AND cantidad_promociones = ( SELECT MIN(cantidad_promociones) FROM ctg_juzgados WHERE id_distrito=$id_dis AND id_tipojuzgado=$instancia )

De esta manera me muestra el o los juzgados que tienen menor cantidad de promociones si mysql me muestra mas de 1 entonces hago un mt_rand con PHP para elegir uno al azar. De esta manera siempre la carga de trabajo va a ir equilibrada.

Última edición por gnzsoloyo; 13/02/2014 a las 10:23 Razón: Legibilidad

Etiquetas: consultar, diferencia, tabla
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 13:26.