2010-10-20 24 views
5

Necesita ayuda para generar consultas. Tengo tabla quantity_price, enumerando cantidad y el precio correspondiente como se muestra a continuaciónAyuda de consulta de MySQL

 
Quantity Price 
---------------- 
1 -- € 175,35 
2.5 -- € 160,65 
5 -- € 149,10 
10 -- € 143,85 

así para hasta precio 1 cantidad será 175,35 hasta 2.5 será 160,65 y así sucesivamente. Para más de 10 cantidad, el precio se mantendrá a 143,85.

Ahora, si mi cantidad es 1.5 entonces la consulta debe devolver el precio 160,65, lo que significa que encuentre en qué rango se encuentra la cantidad y luego obtenga el precio de la cantidad máxima en el rango.

+0

¿Quieres hacer esto es MySQL o PHP? – Petah

+0

Quiero una consulta en mysql –

+1

Entonces, ¿por qué marcó esta pregunta como PHP – Petah

Respuesta

1

Utilice una declaración where para buscar todas las filas mayores que 1.5; luego use limit y order by para tomar la fila con la cantidad más baja. Como comentó Petah, es útil incluir siempre la fila con la cantidad más grande. Por ejemplo:

select * 
from quantity_price 
where Quantity > 1.5 
     or Quantity = (select max(Quantity) from quantity_price) 
order by 
     Quantity 
limit 1 
+0

Esto falla si la cantidad es más de 10 – Petah

+0

@Petah: ¡Buen punto, consulta editada! – Andomar

1
select price 
from quantity_price 
where myquantity >= quantity 
order by quantity 
limit 1 
+1

¿No debería ser 'pedido por cantidad ASC'? – Andomar

+0

sí, editó la consulta. –

+1

no debe ser '<=' (o 'quantity> = myquantity') ... y no funciona para' myquantity' más de 10? – richaux