Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

Ротация   Найти похожие ветки 

 
Вовчик   (2004-08-24 03:24) [0]

Нужно сделать следующее:
есть 10 записей, у которых два поля: "имя" и "приоритет"... Например, вот 10 записей

имя - приоритет
1 - 1
2 - 2
3 - 3
4 - 4
5 - 4
6 - 4
7 - 4
8 - 4
9 - 4
10 - 4

При первом выполнении запроса должно получиться так:
1
2
3
4
5
6
7
8
9
10
т.е. у кого приоритет больше четырех, выстраиваются согласно приоритету, а остальные "как попало" :)

при втором вызове должно получиться следующее:
1
2
3
5
6
7
8
9
10
4

т.е. с приоритетом больше четырех остались на своих местах, а те которые без приоритета поменялись местами: тот, кто был вверху, оказался в самом внизу, остальные поднялись наверх на одно место... что-то типа стека....

Как это реализовать?


 
elected   (2004-08-24 03:59) [1]

Слышь че =-)))
Объясни толком что нужно! А я не телепат ! =-)


 
vovchik   (2004-08-24 04:50) [2]

В случае со стеком (Последний пришёл - первый ушёл) там участвуют все элементы а не отдельная часть набора данных. Ты сначала ограничь то что тебе надо, а потом уже меняй элементы


 
Nikolay M. ©   (2004-08-24 09:54) [3]

Вот это череззабоногузадерищенскозапупинская задачка! :)
Мало того, что средствами SQL эта задача практически нереализуема, так она еще и поставлена некорректно:

1)

> т.е. с приоритетом больше четырех остались на своих местах,
> а те которые без приоритета поменялись местами

В примере они ВСЕ(!) с приоритетом.

2)
Как можно сначала отсортировать

> остальные "как попало"

а потом из этого "как попало" (что попало? куда попало?) сделать

> что-то типа стека

Короче: не церебрируй людям мОзги :)
Делай все на клиенте.


 
Вовчик   (2004-08-24 11:16) [4]

Короче: обеспечивается равноправие записей, т.е. каждая из них когда-то окажется в самом верху... если она оказалась наверху, то в следующий раз окажется внизу, вторая запись станет первой, третья - второй и т.д.  
Помимо этого есть три записи с приоритетом, которые будут ВСЕГДА распологаться на первых трех позициях...

Если что-то объяснено непонятно, извиняйте... Постанова задачи совсем идиотская... но заказчики требуют именно такого...


 
KSergey ©   (2004-08-24 11:22) [5]

Ну реализовать можно, вероятно, кучей способов...
Можно завести еще поле, в котором сохранять реальную нумерацию для последней выборки (или заполнить при первой), после чего для записей с одинаковым приоритетом это поле и "ротировать". Или просто к значению первой из них (из записей с одним приоритетом) (после выборки) прибавлять что-нибудь...



Страницы: 1 вся ветка

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.072 c
14-1093667205
race1
2004-08-28 08:26
2004.09.19
майкрософт


3-1092907138
Loaderz
2004-08-19 13:18
2004.09.19
Где здесь Ошибка???


14-1093940607
DSKalugin
2004-08-31 12:23
2004.09.19
Что за расширение "*.nco"?


1-1094029579
CAMCOH
2004-09-01 13:06
2004.09.19
Как добится вывода разноцветного текста.


3-1092906175
Карелин Артем
2004-08-19 13:02
2004.09.19
Доступ по к базе IB c использованием NamedPipe