MySQL запрос, чтобы получить обвинения - PullRequest
0 голосов
/ 01 октября 2009

У меня есть таблица ниже

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, чтобы получить ее, и я немного потерян

Может ли кто-нибудь помочь

Спасибо

Ответы [ 3 ]

0 голосов
/ 01 октября 2009

Позвольте мне перефразировать.

Вот таблица

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

Объясните таблицу:

Допустим, что стоимость и плата - это деньги. Если пользователь имеет значение 2, то я должен зарядить с 5, используя relID 1 Если пользователь имеет значение 8, то я должен зарядить с 2, используя relID 1 то же самое для relID 2

Поэтому, когда пользователь приходит со значением 10, я должен найти, что взимать. Поэтому для данного значения 10 я должен найти в таблице все записи со значением <10. </p>

В примере значения для значения <10 равны </p>

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 

и ...

Надеюсь, сейчас будет ясно

0 голосов
/ 01 октября 2009
select *
from Table t
where value =
  (select max(value)
   from Table
   where value <= 10
   and relId = t.relId)
0 голосов
/ 01 октября 2009

Ваш вопрос не очень понятен, но я думаю, что это сработает для вас

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...