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

Help con intervalos de un campo a otro

Estas en el tema de Help con intervalos de un campo a otro en el foro de Mysql en Foros del Web. Que tal, me animo a escribir en este foro ya que he buscado por toda la red (no creo que por toda pero sin en ...
  #1 (permalink)  
Antiguo 17/03/2011, 23:24
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 17 años, 5 meses
Puntos: 1
Help con intervalos de un campo a otro

Que tal, me animo a escribir en este foro ya que he buscado por toda la red (no creo que por toda pero sin en mis posibilidades) y no encuentro como hacer lo siguiente:

Tengo una base de datos donde cuento el numero de ventas de un producto que se ha hecho durante un mes según el numero de ventas hechas en un mes le arrojará al ejecutivo de ventas un bono por ejemplo:

16--------->$2000
21--------->$3000
28--------->$3500
31--------->$4500

Tanto el precio como el numero de ventas puede cambiar cada cierto tiempo osea que hoy el mínimo de ventas es 16 pero mañana puede ser 15 y tal ves ganar $1800 por esos 15....ahora mi lógica que he implementado es sacar el minimo requerido y el maximo requerido eso no es problema pero como puedo hacer que si supongamos el ejecutivo vendio 21 que es el que sigue le arroje 3000 o si vendio 22 le siga arrojando 3000 y con todo esto sabiendo que los valores son dinamicos como ya lo exprese. ¿alguien sabe como sacar un intervalo de un campo a otro osea que del campo que contiene el numero 16 me haga un intervalo entre ese y a lo mejor el 28 y segun el numero de ventas que imaginemos que pueda ser 25 me arroje $3000 que es el intervalo que hay entre el 21 y el 28 pero no llega a 28 por lo que sigue ganando 3000 que equivalen a la venta de 21? ¿o alguien sabe que otra logica pueda usar o una forma de sacar ese valor que yo no sabre cual será?

Muchas Gracias.
  #2 (permalink)  
Antiguo 18/03/2011, 07:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Help con intervalos de un campo a otro

Una manera de hacerlo es la siguiente

Supongamos que tenemos una tabla o vista Ventas y una tabla Intervalos

Ventas
...
idcomercial <-- identifica al comercial
idProducto <-- identifica el producto
totalventas <-- Numerico con el total de ventas del comercial y producto
...

1...1...50
1...2...150
2...1...150
2...2...50

Intervalos
...
idProducto
minimo
maximo
comision
...

1...0......100...25
1...101..200...50
2...0......100...30
2...101..200...60

Esta consulta nos daria la comision a cobrar por cada producto y comercial.

Código MySQL:
Ver original
  1. SELECT Ventas.idcomercial,
  2.              Ventas.idProducto,
  3.              Ventas.totalventas,
  4.               (SELECT ti.comision
  5.                       from Intervalos ti  
  6.                              where ti.idProducto=Ventas.idProducto
  7.                                  and ti.minimo<=Ventas.totalventas
  8.                                  and ti.maximo>=Ventas.totalventas) AS com
  9. FROM TProductos;

1...1...50....25 el comercial 1 ha vendido 50 del producto 1 le corresponde 25
2...1...150..50 el comercial 2 ha vendido 150 del producto 1 le corresponde 50
1...2...150..60
2...2...50....30


Te dejo para ti solucionar el tema del cambio de tramos, es decir si los tramos tienen una vigencia temporal debes agregar campos a la tabla intervalos para saber en que fechas es vigente cada tramo y en la tabla ventas para saber a que fechas corresponde cada venta. Con esto te será faicil modificar la subconsulta para que ademas de retornar la comision correspondiente al tramo de ventas lo haga con la comision vigente en el periodo de ventas concreto. Si los cambios de vigencia y los peridos de venta no coinciden tendrás que decidir tu algo, no hay una solución concreta depende del acuerdo que tengas con los comerciales....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 18/03/2011, 08:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Help con intervalos de un campo a otro

Complemento si tines un multiplicardor (%) que se tiene que aplicar por tramos al total de ventas la solucion no varia mucho...

Código MySQL:
Ver original
  1. SELECT Ventas.idcomercial,
  2.              Ventas.idProducto,
  3.              Ventas.totalventas,
  4.               Ventas.totalventas * (SELECT ti.comision
  5.                       FROM Intervalos ti  
  6.                              WHERE ti.idProducto=Ventas.idProducto
  7.                                  AND ti.minimo<=Ventas.totalventas
  8.                                  AND ti.maximo>=Ventas.totalventas) AS com
  9. FROM TProductos;

Donde

Intervalos
...
idProducto
minimo
maximo
comision
...

1...0......100...0.25 <-- 25%
1...101..200...0.50
2...0......100...0.30
2...101..200...0.60

La comision és un porcentage en tanto por uno.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: intervalos, campos
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 23:07.