Russian Qt Forum
Ноябрь 23, 2024, 23:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: невыполняется сортировка SQLite  (Прочитано 5825 раз)
slava_d200
Гость
« : Апрель 06, 2012, 11:00 »

прошу подсказать где закралась ошибка
вот делаю запрос:

SELECT del,GUID_id,Priznak_Gruppy,Name, 1,id  FROM Spr_Klient WHERE GUID_id = '3'
union
SELECT del,GUID_id,Priznak_Gruppy,Name,2,id FROM Spr_Klient WHERE GUID_Roditel = '3'
ORDER BY Priznak_Gruppy DESC, 4 ASC, id ASC;

последняя сортировка не выполняется по реквизиту : id ASC

картинка результата прикреплена.
Записан
mutineer
Гость
« Ответ #1 : Апрель 06, 2012, 11:04 »

А где колонка с именем 4? какие у нее значения?

З.Ы. названия колонок просто пипец...
Записан
slava_d200
Гость
« Ответ #2 : Апрель 06, 2012, 11:06 »

1 и 2

картинка значений прилагается.

по определению это можно так назвать переменная определяющая уровень вложенности
1-ый уровень
2-ой уровень
Записан
mutineer
Гость
« Ответ #3 : Апрель 06, 2012, 11:08 »

ORDER BY Priznak_Gruppy DESC, 4 ASC, id ASC;

сортировка по полю 4 наличествует, значений на картинке не видно. 1 и 2 - это значения? в каких строках они такие?
Записан
slava_d200
Гость
« Ответ #4 : Апрель 06, 2012, 11:13 »

4 - это позиция переменной в запросе.
т.к в формате запроса можно либо использовать наименования переменных либо позиция переменной в запросе.
так 4 это какраз позиция переменной в запросе.
Записан
mutineer
Гость
« Ответ #5 : Апрель 06, 2012, 11:15 »

4я переменная в запросе это Name? тогда все правильно отсортировано
Записан
slava_d200
Гость
« Ответ #6 : Апрель 06, 2012, 11:15 »

ну в общем запрос прошол правильно после того как я обозвал эту переменную.

SELECT del,GUID_id,Priznak_Gruppy,Name, 1 AS Yroven,id  FROM Spr_Klient WHERE GUID_id = '3'
union
SELECT del,GUID_id,Priznak_Gruppy,Name,2,id FROM Spr_Klient WHERE GUID_Roditel = '3'
ORDER BY Priznak_Gruppy DESC, Yroven ASC,id ASC;
Записан
mutineer
Гость
« Ответ #7 : Апрель 06, 2012, 11:16 »

Запрос очень нечитабелен, оттого и ошибки
Записан
slava_d200
Гость
« Ответ #8 : Апрель 06, 2012, 11:18 »

4я переменная в запросе это Name? тогда все правильно отсортировано

вот в этом и была ошибка
СПАСИБО.
почему то я посчитал что отсчет начинается с "0", а не с "1".
Записан
mutineer
Гость
« Ответ #9 : Апрель 06, 2012, 11:20 »

4я переменная в запросе это Name? тогда все правильно отсортировано

вот в этом и была ошибка
СПАСИБО.
почему то я посчитал что отсчет начинается с "0", а не с "1".

А ты уверен что берется 4е поле из первой части запроса, а не из второй?
Записан
slava_d200
Гость
« Ответ #10 : Апрель 06, 2012, 11:27 »

запрос то суммирующий
сортировка распространяется уже на всю выборку
что по первому запросу что по второму в целом.

Записан
mutineer
Гость
« Ответ #11 : Апрель 06, 2012, 11:29 »

и в каком порядку идут поля 1 и 2 в результирующей выборке? как к ним обратиться по номеру? (и как вообще парсер запроса должен понять 1 это имя поля или его номер в выборке?)
Записан
slava_d200
Гость
« Ответ #12 : Апрель 06, 2012, 11:59 »

и в каком порядку идут поля 1 и 2 в результирующей выборке? как к ним обратиться по номеру? (и как вообще парсер запроса должен понять 1 это имя поля или его номер в выборке?)

del,GUID_id,Priznak_Gruppy,Name, 1 AS Yroven,id  вот такой порядок. т.е. как мы определили в запросе в такой последовательности она и будет считатся.

имя поля не может иметь числовое поле. поэтому запрос и понимает что если ображение идет как числовое значит это порядковый номер переменной в запросе а если строка то тогда ищи имя этого поля.

прилагаю формат запроса:
« Последнее редактирование: Апрель 06, 2012, 12:01 от slava_d200 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.068 секунд. Запросов: 21.