Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

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

 
Вовчик   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.067 c
14-1094032850
megabyte
2004-09-01 14:00
2004.09.19
Neverending story


14-1092674721
Soft
2004-08-16 20:45
2004.09.19
Можно научить правильно думать не робота, а человека?


1-1094457300
guest_Dmitry
2004-09-06 11:55
2004.09.19
#$D#$A - что это может быть?


1-1094119866
Shurik_snz
2004-09-02 14:11
2004.09.19
Как в TTreeview изменить цвет текста узла?


14-1093696356
Копир
2004-08-28 16:32
2004.09.19
Президент России в 2008 г.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский