我有下表
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可以提供帮助
由于
答案 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)