获取费用的mysql查询

时间:2009-10-01 10:16:14

标签: mysql

我有下表

relID    value   charge
  1        2       5
  1        8       2
  2        1       10
  2        4       6
  2        9       2

对于上表,我需要一个给定值ex 10来查找每个relID的费用

In the above for value<10 i need to get charge=5 for relID=1 and charge=2 for relID=2 

我正在尝试使用1 sql命令来获取它,我有点迷失

Anyony可以提供帮助

由于

3 个答案:

答案 0 :(得分:0)

您的问题不是很明确,但我认为这对您有用

SELECT t.relID,
(
    SELECT charge
    FROM table
    WHERE relID = t.relID
    AND value < 10
    ORDER BY value
    LIMIT 1
) AS charge
FROM table AS t

答案 1 :(得分:0)

让我重新说一下。

这是表格

relID    value   charge
  1        2       5
  1        8       2
  2        1       10
  2        4       6
  2        9       2

解释表格:

让我们说价值和收费是金钱。 如果用户具有值2,那么我必须使用relID 1以5充电 如果用户的值为8,那么我必须使用relID 1以2收费 同样适用于relID 2

因此,当用户得到值10时,我必须找到要收费的内容。因此,对于给定值10,我必须在表中找到值<10的所有记录。

在示例中,值&lt; 10的值是

For relID=1 are (2,8)
For relID=2 are (1,4,9)

现在每个relID我需要获得最大值。

For relID=1 max value is 8 so charge is 2
For relID=2 max value is 9 so charge is 2

我简单的英语有价值率

0-2 charge 5
2-8 charge 2 

和......

我希望现在能够清楚

答案 2 :(得分:0)

select *
from Table t
where value =
  (select max(value)
   from Table
   where value <= 10
   and relId = t.relId)