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

duda consulta sql

Estas en el tema de duda consulta sql en el foro de Bases de Datos General en Foros del Web. Hola, tengo el siguiente problema Tengo 10 usuarios de una página web ordenados por los puntos que han obtenido por su participación en la web, ...
  #1 (permalink)  
Antiguo 17/02/2010, 07:12
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
duda consulta sql

Hola, tengo el siguiente problema

Tengo 10 usuarios de una página web ordenados por los puntos que han obtenido por su participación en la web, y tengo 10 regalos a repartir entre ellos en función de sus puntos.

He realizado un formulario web para que recoja las preferencias de cada usuario hacia los regalos:

usuario:
regalo 1:
regalo 2:
...
regalo 10:

con un desplegable para que cada uno escoja aquel regalo que prefiere.

Lo almaceno en una base de datos de forma que queda:

puesto regalo orden
1 sudadera 1
2 sudadera 1
2 camiseta 2
3 camiseta 1
3 boligrafo 2
3 sudadera 3
...

Cada usuario tiene que escoger tantos regalos como puestos en los que haya quedado. Así el usuario que ocupe el tercer puesto tendrá que escoger 3 regalos y el que ocupe el puesto 9 deberá escoger 9 regalos

Hasta aquí todo bien, ahora viene el problema. ¿Qué consulta sql puedo usar para sacar que regalo se lleva cada usuario?

Gracias anticipadas.
  #2 (permalink)  
Antiguo 17/02/2010, 07:21
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: duda consulta sql

lee temas referentes a inner join, la verdad te ayudaría, pero no entendi muy bien tu pregunta
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 17/02/2010, 07:41
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda consulta sql

A lo mejor no me expliqué muy bien, perdona.

Para resumirlo, tengo la siguiente tabla


regalo usuario orden

viaje 1 1
sudadera 2 1
camiseta 2 2
ordenador 3 1
viaje 3 2
camisa 3 3
viaje 4 1
ordenador 4 2
camisa 4 3
camiseta 4 4
...

El orden muestra la preferencia de cada usuario hacia el regalo. Así, por ejemplo el usuario 4 prefiere el viaje a cualquier otro regalo y le daremos el viaje siempre que ningún otro usuario con más puntos lo haya escogido antes. En este caso como el usuario 1 ha escogido el viaje se lo llevaría él. El usuario 4 tampoco puede tener el ordenador porque lo ha pedido el usuario 3 que tiene más puntos. Así que el usuario 4 se quedaría con su tercera preferencia que es la camisa.

No sé si me explico.

Buscaba una consulta sql que me de el resultado de todas esas combinaciones y me las muestre en pantalla.
  #4 (permalink)  
Antiguo 17/02/2010, 07:42
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: duda consulta sql

mm sigo sin entender :3

SELECT * ???
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 17/02/2010, 07:48
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda consulta sql

A ver, tengo 10 usuarios ordenados de forma ascendente por los puntos que tienen y tengo 10 regalos a repartir entre ellos. Cada usuario ha mostrado las preferencias hacia cada uno de los regalos ordenándolos de acuerdo a sus gustos. Por ejemplo:

Usuario 4: estas son sus preferencias:

1-viaje
2-ordenador
3-sudadera
4-camisa

Esto quiere decir que el usuario 4 tendrá el viaje siempre y cuando ninguno de los 3 primeros usuarios lo haya pedido. Es que no puedo explicarlo mejor...
  #6 (permalink)  
Antiguo 17/02/2010, 07:54
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: duda consulta sql

creo que el punto base es al inicio, al momento de ofrecer los regalos, deberias hacer tipo stock, para evitar registrar 4 veces (por ejemplo) al usuario 4, que tiene:

viaje 4 1
ordenador 4 2
camisa 4 3
camiseta 4 4

como el usuario 4 puede escojer 4 regalos??? y el usuario 1 solo puede escojer 1 ???, veo que tiene preferencia siempre el usuario 1... luego el 2... y asi descendentemente...
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #7 (permalink)  
Antiguo 17/02/2010, 07:58
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda consulta sql

Exacto hector, el usuario1 tiene preferencia frente al usuario 2 y éste sobre el usuario 3 y así sucesivamente (ya que están ordenados por orden descendente de puntos).

El hecho de que el usuario 4 deba escoger 4 regalos es porque los 3 primeros regalos que haya escogido pueden haberlos pedido los 3 primeros usuarios que tienen preferencia frente al 4º.

¿alguna sugerencia de como hacerlo?
  #8 (permalink)  
Antiguo 17/02/2010, 10:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Bases de Datos

Etiquetas: sql
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 10:39.