Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
25.09.2013, 15:27
dekart
DaHost.Ru

Зарегистрирован:
2005-03-26
Сообщений: 81

Помогите организовать сортировку в запросе:
1. Сначала по полю Owner (работает)
2. по полю NumCat (не срабатывает)

Запрос такой:

".listQuery("SELECT Owner as Owner1, Subdivision_ID, (select GROUP_CONCAT(NumCat SEPARATOR ', ') AS pet FROM Message2008 WHERE Owner = Owner1) AS pet FROM Message2008 WHERE Subdivision_ID = $sub group by Owner ORDER BY Owner ASC, NumCat ASC","<div><br />\$data[Owner1] - <b>\$data[pet]</b></div>")."

Чтоб не делала, сортировка по полю NumCat не выполняется...
Выводит так:
Фамилия участника - 61, 95, 57, 63, 1

dekart
25.09.2013, 19:38
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Если я верно понял задачу, то Вы не там делаете сортировку по полю NumCat. Нужно делать сортировку не в наружном запросе, а во вложенном:
Код:
select GROUP_CONCAT(NumCat SEPARATOR ', ') AS pet FROM Message2008 WHERE Owner = Owner1 order by NumCat

Ведь именно вложенный запрос формирует список чисел через запятую.
25.09.2013, 22:17
dekart
DaHost.Ru

Зарегистрирован:
2005-03-26
Сообщений: 81

Руслан, Вы имеете ввиду, что нужно написать так?:

".listQuery("SELECT Owner as Owner1, Subdivision_ID,
(select GROUP_CONCAT(NumCat SEPARATOR ', ') AS pet FROM Message2008 WHERE Owner = Owner1 order by NumCat) AS pet
FROM Message2008 WHERE Subdivision_ID = $sub group by Owner ORDER BY `Owner` ASC
","<div><br />\$data[Owner1] - <b>\$data[pet]</b></div>")."

Так тоже не работает... сортировка не выполняется по полю NumCat...

Поле Owner - строка с русским текстом (Фамилии участников). Их может быть несколько одинаковых. Сначала группировка идет по фамилии и объединяет одинаковые фамилии в одну, выводит по алфавиту, далее должны быть перечислены номера заявок (NumCat).

Т.е. так:
Иванов А.А. - 20, 35, 48
Петров В.А. - 1, 5
Сидоров Д.С. - 18, 45, 96, 101

Сейчас цифры выводятся без всякой логики... Например, так - 65, 100, 61, 67, 2, 1, 35, 116

dekart
25.09.2013, 22:45
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Да, я имел в виду именно такой вариант запроса.
Странно, что не работает. К сожалению, пока не готов уделить Вам бесплатно время по этой задаче. Здесь нужно глубже копать, поэкспериментировать с SQL-запросами. Задача-то не сильно сложная, просто нужно мозг серьезно напрячь. ))
198 196 2013-09-25 22:45:11 13318
Описание проекта