Forum Webscript.Ru
Общие => Базы данных => Тема начата: alex007 от 06 Августа 2004, 01:33:51
-
Привет,
Есть таблица:
-------------------------------------------------
| rateid | courierid | weight | cost |
-------------------------------------------------
| 1 | 1 | 100 | 1.15 |
-------------------------------------------------
| 2 | 1 | 120 | 1.35 |
-------------------------------------------------
| 3 | 1 | 140 | 1.85 |
-------------------------------------------------
| 4 | 1 | 160 | 2.05 |
-------------------------------------------------
| 5 | 1 | 180 | 2.45 |
-------------------------------------------------
Так проблема заключается в том что не могу создать заброс, а именно когда вес груза 132, то как сделать так что бы выбрать следуюющее значение 140.
Жду Ответа.
Заранее большой рахмет.
-
alex007
приложением сделать округление...
-
select min(weight-132) from t where weight > 132; /* даст 8 */
select * from t where abs(weight-132 - 8) < 1;
-
commander
tserbis
Спасибо.
-
tserbis
да забыл написать, что используя твою формулу, груз который весит 100, система будет выберать 120, хотя в таблице уже есть 100...
-
alex007
>=
-
ThE0ReTiC
Это я так и сделал, но здесь еще одна фигня есть, тоесть помимо первого курьера, там еще пару у которого таблица тарифов типа:
-------------------------------------------------
| rateid | courierid | weight | cost |
-------------------------------------------------
| 6 | 2 | 100 | 6.95 |
-------------------------------------------------
| 7 | 2 | 500 | 7.65 |
-------------------------------------------------
| 8 | 2 | 1000 | 9.85 |
-------------------------------------------------
| 9 | 2 | 2000 | 12.30|
-------------------------------------------------
Пример перечисленный выше работает нормально, но как груз весит 600 гр. так он теряется и выдает сумму 0.
-
select * from t where weight>=132 order by weight limit 0,1;
вот так одним запросом
-
Гость
спасибо, но я уже давно нашел решение...
[OFF]так что темку прикрыть можно[/OFF]