|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2015, 13:02 | #1 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Данные о сортировке таблицы.
Общий привет.
Сразу, наверное, предупрежу, что сам до конца не понимаю задание, поэтому если будет сумбур - сильно не пинайте. Короче говоря есть некая табличка: [too] ID ФИО Дата 1 Я 01.01.2015 2 Ты 02.01.2015 3 Он 06.01.2015 [/too] Эта табличка выдается на экран. Пользователь жмакает по заглавиям колонок, чтоб их сортировать. Все вроде ничего, но задали мне ответственные люди вопрос: "Вот, мол, не нравится нам БД каждый раз дергать, а сортировать мы хотим часто. Можно ли к этой табличке прилепить колонки, которые бы указывали в каком порядке отображать полезные данные?" Т.е. хотят получить такую таблицу: [too] ID ФИО Дата SortID SortFio SortDate 1 Я 01.01.2015 1 3 1 20 Ты 02.01.2015 3 2 2 3 Он 06.01.2015 2 1 3 [/too] Чтоб мы показывали только первые три колонки, а при попытке сортировки мы вот хотим прочитать скажем SortID, в котором будет номер строки по порядку из изначального запроса, которую нужно вывести на экран. Во как... Причем оч. хотят чтоб это все было обставлено через SQL, поскольку с набором планирует работать совершенно другое подразделение, а они инстанцией выше, и их проггеры типо мегаспецы по оптимизации, отсюда и дали задание так данные им выкатывать. короче говоря: прилепить к набору табличку индексов, чтоб работать с индексацией по месту не трогая сервер. Вот как такое проделать в SQL одним запросом? Причем условие: Никаких ХП. мотивируют мол база не наша, портить не будем.
I'm learning to live...
Последний раз редактировалось Stilet; 27.11.2015 в 13:04. |
27.11.2015, 13:27 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Например, подобная фишка по умолчанию встроена в PhpMyAdmin, он запоминает столбец, по которому сортировали и при открытии таблицы сортирует по этому столбцу. (включается-выключается сие поведение в опциях) Т.е. Если есть клиент, то на нём можно переписать запросы, добавив ORDER BY НужныйСтолбец, имена столбцов брать извне. Если же речь идёт просто о БД, к которой делают запросы через некую СУБД, то ничего не выйдет. Она про ваши хотелки ничего не знает и знать не будет. Через вьёшки, имхо, можно было решить. Но вьюхи должны в БД храниться. что запрещено условиями задачи. |
|
27.11.2015, 13:36 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну вот сортировка по коду и прицепляю номер записи для сортировки по наименованию (при условии что Namep уникально!). Будет медленно для длинной таблицы. Есть еще ROW_NUMBER(), но проверить не могу - устарела моя СУБД
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.11.2015, 13:40 | #4 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
1. нечто вроде такого ????
Код:
А как они хотят ПЕРЕКЛЮЧАТЬ у СЕБЯ сортировки НЕ ПЕРЕЗАПРАШИВАЯ сервер.(не меняя НАБОР ДАННЫХ) Если клиент позволяет это делать (например DevExpress), то НЕЗАЧЕМ и городить доп. индексы (они ведь уже есть).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 27.11.2015 в 13:42. |
27.11.2015, 13:44 | #5 | |||||||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Это они типа так решили проблему обрыва связи. "Маладцы" такие вот Цитата:
Или как-то получить данные самой индексации (MS SQL 2008 если что) по такому-то условию? Цитата:
Цитата:
Я им объяснял, что так не стоит делать, но верхам как правило побоку. Не сомневаюсь, что и им их верхи так же сказали "Делайте, и не спрашивайте зачем". Цитата:
Цитата:
Мол "Мы эту технологию уже наработали в пилотном проекте". пЯлоты блин...
I'm learning to live...
|
|||||||
27.11.2015, 13:57 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.11.2015, 14:09 | #7 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
||
27.11.2015, 14:43 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
Иначе я просто не могу обьяснить зачем понадобился именно такой набор...
I'm learning to live...
|
|
27.11.2015, 14:58 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А тот ROW_NUMBER, что в #6 работает интересно? Полагаю, что для ордер бай там любые ключи можно и несколько ROW_NUMBER в одном запросе c разными ключами
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.11.2015, 15:09 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Записать данные из таблицы в БД | cargo29 | PHP | 13 | 22.10.2012 12:57 |
Данные из таблицы в список, если в ячейке таблицы стоит количество | oleg_sh | Microsoft Office Excel | 4 | 08.10.2012 14:52 |
Не отображаются данные таблицы | panuta | Общие вопросы Delphi | 8 | 18.09.2011 12:31 |
Данные из двух полей исх. таблицы в одно поле сводной таблицы | Strelec79 | Microsoft Office Excel | 2 | 02.08.2009 13:59 |
Данные из таблицы в поле EQ | CaptainNemo | Microsoft Office Word | 10 | 15.06.2009 20:29 |