|
|
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
В талице хранятся цифры от 1 до 999 1 2 3 8 9 33 ... 999 Среди них могут быть пропуски Задача - надо для выбранного числа (например 33) найти ближайшее целое число, которого в данном столбце ещё нет Можно ли это решить запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:17:23 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Запросом-вряд ли. Можно через ХП. А почему именно эта задача? Это не про генераторы случайно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:21:50 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Максимум, что можно пользовать - параметры в запросе, потому что задачка должна решаться в разных базах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:24:28 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
одним запросом при заданных условиях, имхо, нет а использовать дополнительные таблицы можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:27:27 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Из исходных данных- это всё что есть. Создать временную таблицу наверно можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:29:48 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
cоздаешь временную таблицу (я назвал её test1), которую заполняешь числами от 1 до 999 (кстати цифр от 1 до 999 не существует ) запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. вместо 8 подставь переменную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 19:52:21 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Можно решить одним запросом ! Но, однозначно, он не будет простым... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 20:01:35 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Запрос для ORACLE 8.0.6 select pre, abs( min( 45 - pre ) ) as x from ( select t1.nr as pre, t2.nr as post from test t1, test t2 where t1.nr + 1 = t2.nr(+)<- (Эту операцию надо заменить на left join) ) where post is null group by pre order by x первая строка и есть ответ - всем спасибо (и Артему особое) Bol ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 20:06:18 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
>Johnmen А вопрос был по SQL-92 и последний пример показывает, как это решить и в IB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 20:33:59 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
Еще версия select t1.nr n1, t2.nr+1 n2 from test t1, test t2 where t1.nr(+) = t2.nr+1 and t2.nr+1 > 33 and t1.nr is null order by n2; Bol ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 20:35:22 |
|
||
|
Вопрос по SQL
|
|||
|---|---|---|---|
|
#18+
2vis создал таблицу select nr,min(abs(nr-33)) from (select t1.nr from test1 t1 where t1.nr not in (select t.nr from test t)) group by nr order by min(abs(nr-33)) первая строка и есть ответ (если решения 2 , то вторая строка тоже) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2004, 21:04:39 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32574612&tid=1578383]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
166ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 452ms |

| 0 / 0 |
