Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ayuda con problem para determinar cuales son los registros con menor descuento (https://www.clubdelphi.com/foros/showthread.php?t=76396)

microbiano 28-10-2011 19:02:27

ayuda con problem para determinar cuales son los registros con menor descuento
 
bien resulta que no se como resolver estes problema:

planteamiento teorico:

de un producto por ejemplo gansitos puedo tener 5 proveedores que me oferten lo siguiente:

proveedor, precio,descuento
proveedor 1, 100, 10%
proveedor 2,100,15%
proveedor 3,100,20%
proveedor 4,100,16%
proveedor 5,100,3%

bien en este caso tendrias que determinar que porcentaje de compra le corresponde a los que 3 que oferten el mayor descuento esn este caso quedaris de lasiguiente manera :

proveedor, precio,descuento, % de compra
proveedor 1, 100, 10%
proveedor 2,100,15%, 20%
proveedor 3,100,20%, 70%
proveedor 4,100,16%, 30%
proveedor 5,100,3%

y en el siguiente caso si solo tengo dos proveedores entonces tendria que asignar al primero con mayor descuento el 705 y al segundo el 30% como puedo hacer esto con sql o alguna idea para poder solucionar este problema?


he pensado en una tabla auxiliar en la que haga una consulta con max pero no tengo idea

Casimiro Notevi 28-10-2011 19:49:20

Cita:

Empezado por microbiano (Mensaje 417015)
proveedor, precio,descuento, % de compra
proveedor 1, 100, 10%
proveedor 2,100,15%, 20%
proveedor 3,100,20%, 70%
proveedor 4,100,16%, 30%

proveedor 5,100,3%

¿Y de dónde sale que sea 70, 30 y 20?

microbiano 28-10-2011 19:53:10

eso lo determino yo :-) en la tabla esta la columna de porcentaje_compra

roman 28-10-2011 20:06:23

No entiendo cuál es el problema. Si el porcentaje de compra ya viene en la tabla pues simplemente ordena la tabla descendentemente por descuento y toma los tres primeros registros.

Por otra parte, ¿no sería más fácil comprarle TODO al proveedor que oferta más? :p

// Saludos

microbiano 28-10-2011 20:38:14

si lo mas facil seria comprarle al que oferte mas pero como hago el update en la tabla para solo determinar los 3 primeros registro :-),

roman 28-10-2011 21:04:16

A ver si entiendo. Entonces ¿tú lo que quieres hacer es tomar los tres registros más altos y a esos registros asignarles un valor en el campo porcentaje de compra? Por cierto, dichos porcentajes ¿no deberían sumar 100? Porque en el ejemplo suman (120).

Y, a todo esto, ¿qué base de datos usas?

// Saludos

microbiano 28-10-2011 23:09:27

Es corecto es lo que quiero hacer, en cuanto a los porcentaje jejeje me equivoque deberian ser 50, 30 y 20 %.

Casimiro Notevi 28-10-2011 23:48:19

No has contestado a la pregunta de Román, ¿qué base de datos usas?.
Si he entendido que necesitas los 3 proveedores con más descuento para un producto, entonces, si no he entendido mal, será algo así:

Código SQL [-]
select first 3 *
from proveedores 
where xxxxxxx   /* [aquí irán los parámetros que necesites según el proveedor del productoque estés buscando] */
order by descuento desc

oscarac 28-10-2011 23:51:03

me parece que lo que microbiana necesita es asignar el % a los x mejores descuentos que ofrecen los proveedores
no creo que sea tan sencillo

porque no sabemos el criterio para determinar que proveedor sale elegido

debes ser un poco mas explicito

microbiano 29-10-2011 21:09:31

Oscarac.

es correcto lo que comentas lo que necesito es asignar el porcentaje a los registros que cumplan con la condicion inicial. en cuanto a la base de datos manejada es sqlserver 2000.

espero me puedan ayudar de antemano muchas gracias.



estoy iniciand con una tabla temporal e la que pongo los 3 registros con mayor desceunto ;-), despues de eso creo que hacre una subconsulta y despues hacer un update en la tabla principal.


La franja horaria es GMT +2. Ahora son las 21:40:09.

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