Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2019, 19:51   #1
SpherX21
Новичок
Джуниор
 
Регистрация: 14.01.2019
Сообщений: 2
По умолчанию MySQL сортировка попарный вывод

Приветствую всех. Очень нужна помощь. Есть таблица. Необходимо создать SQL-запрос и вывести студентов попарно в два столбца в зависимости от их среднего балла из таблицы ведомость.
Пример, есть у нас 4 студента и известны их средние баллы:
Иванов 5
Петров 4,5
Сидоров 4
Скворцов 3,5
Таким образом они должны выводиться в таком порядке:
1 столбец | 2 столбец
Иванов | Петров
Петров | Сидоров
Сидоров | Скворцов
Т.е. студенты выводятся попарно X>Y в таком порядке
Файл с БД прикреплен.
46.rar
SpherX21 вне форума Ответить с цитированием
Старый 15.01.2019, 09:24   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

1. студенты в ОДНУ колонку в нужном порядке (c "нумерацией" -- recno)
Код:
select recno, ... order by ...
2. вывести полученную выше таблицу в ДВЕ колонки
Код:
select col1.*, col2.*
from ( select ... order by ... ) as col1 --вывод нечетных строк (см. where)
left join ( select ... order by ... ) as col2 --вывод четных( см. on )
                  on col1.recno =col2.recno+1 --условие соединения строк (следующая четная строка)
where col1.recno div 2 =1 --из первой только НЕЧЕТНЫЕ строки
P.S. если сумеешь можно в col1, col2 собирать только "нужные"(четные/нечетные) общего списка
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 15.01.2019, 09:49   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не, чет-нечет не нужен, чуть по другому
Код:
select col1.*, col2.*
from ( select ... order by ... ) as col1 --вывод всех строк
left join ( select ... order by ... ) as col2 --вывод следующих( см. on )
                  on col1.recno =col2.recno+1 --условие соединения строк (следующая строка)
у одной записи второе поле null будет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод данных из БД MySQL djunjich PHP 0 09.08.2017 12:20
Вывод MySQL в PHP s88s PHP 13 29.04.2016 15:08
Вывод данных с mysql maxidon PHP 2 21.07.2012 00:59
Вывод из MySQL 4ok PHP 2 29.12.2010 03:14
Вывод данных из MySQL kirosin JavaScript, Ajax 2 17.06.2010 23:52