disaster |
Отправлено: 09.02.2006, 20:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Всем привет!
У меня такой вопрос, как задать свой порядок сортировки в DBGrid.
То есть имеется текстовое поле Mounth (Месяц) и его допустимые значения январь,февраль, ... , декабрь
При отображении таблицы записи сортируются по алфавиту по этому полю, но это имеет вид:
август, (остальные поля)
апрель, (остальные поля)
декабрь, (остальные поля)
июль, (остальные поля)
июнь, (остальные поля)
май, (остальные поля)
март, (остальные поля)
ноябрь, (остальные поля)
октябрь, (остальные поля)
сентябрь, (остальные поля)
февраль, (остальные поля)
январь, (остальные поля)
А хочется сделать чтобы они сортировались по порядку следования месяцов в календаре. Как это сделать? |
|
AVC |
Отправлено: 10.02.2006, 09:11 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Добавить числовое поле и сортировать по нему. Поле не обязательно добавлять физически (но это зависит от СУБД, о которой автор вопроса скромно умолчал ) |
|
Tseug |
Отправлено: 12.02.2006, 17:22 |
|
Не зарегистрирован
|
Как это "Поле не обязательно добавлять физически"?
Например для ADO/Access. |
|
olegenty |
Отправлено: 13.02.2006, 07:04 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
это значит, поле может быть Calculated на стороне клиента, может быть добавлено в результат запроса на стороне сервера, но в обоих случаях — отсутствовать в таблицах БД.
|
|
AVC |
Отправлено: 13.02.2006, 10:07 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
Например для ADO/Access.
|
CODE |
Select * From (
SELECT
t1.*
,LCase(Mid([month],1,3)) AS m1
,Switch
([m1]="янв",1
,[m1]="фев",2
,[m1]="мар",3
,[m1]="апр",4
,[m1]="май",5
,[m1]="июн",6
,[m1]="июл",7
,[m1]="авг",8
,[m1]="сен",9
,[m1]="окт",10
,[m1]="ноя",11
,[m1]="дек",12
) AS monthNN
FROM t1
)
Order By (monthNN+0);
|
PS. Я бы хранил в таблице дату (или номер месяца) а название месяца достраивал бы при показе. |
|
|