2010-10-20 108 views
5

在構建查詢時需要幫助。我有quantity_price表,列出的數量和相應的價格如下所示MySQL查詢幫助

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

所以對於高達1倍量價格會175,35高達2.5這將是160,65等。超過10個數量,價格將保持在143,85。

現在,如果我的數量是1.5,那麼查詢應該返回價格160,65,這意味着查找哪個範圍的數量存在,然後獲取範圍內最大數量的價格。

+0

你想做的事,這是MySQL或PHP? – Petah 2010-10-20 11:24:56

+0

我想在mysql中查詢 – 2010-10-20 11:25:58

+1

那麼爲什麼你把這個問題標記爲PHP – Petah 2010-10-20 11:26:36

回答

1

使用where語句查找大於1.5的所有行;然後使用limitorder by來獲取最低數量的行。正如Petah評論的那樣,總是包含最大數量的行是很方便的。例如:

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

如果數量超過10就失敗 – Petah 2010-10-20 11:25:51

+0

@Petah:好點,查詢編輯! – Andomar 2010-10-20 11:28:39

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

這不應該是'按數量訂購'嗎? – Andomar 2010-10-20 12:19:50

+0

是的,查詢編輯。 – 2010-10-20 12:36:49

+1

不應該是'<='(或'quantity> = myquantity')...並且它對於超過10的「myquantity」不起作用? – richaux 2010-10-20 13:02:43