как отсортировать записи: одинаковые значения вместе остальное по дате

fog

Рыцарь Джедай
как отсортировать записи: одинаковые значения вместе остальное по дате

Есть таблица, в ней номера телефонов и время звонка.

необходимо для отчёта отсортировать поля так, чтобы одинаковые номера телефонов были вместе, всё остальное сортировалось по времени.


т.е. Последуюжие звонки с этого-же номера "прилипают" к самому первому, не зависимо от времени...


order by time, phone - не подходит, не правильно будет по дате сортировать

например:

это просто сортировка по дате

76844 19:10
34145 17:53
52345 15:17
56344 14:20
34145 13:15
52444 13:12
34145 13:10

нужно так:

76844 19:10
34145 17:53
34145 13:15
34145 13:10
52345 15:17
56344 14:20
52444 13:12


Кажется это средствами только SQL не решить... :(

Можно не _точно_так_, но как-нибудь вроде этого.
Чтобы при распечатке звонки от одного человека были рядом.
 

atlantij

Guest
прошу прощения за неточность.
я хотел спросить у тебя и телефон и фремя в 1м поле?
 

atlantij

Guest
ну а какие тогда проблемы?
просто делаеш ORDER BY и все... по 2м столбцам
например
'SELECT * FROM tab ORDER BY telefon, vremya'
 

fog

Рыцарь Джедай
проблема в том, что если я буду сортировать по номеру тел.
записи будут отсортированы так:

(смотреть на время)

34145 17:53
34145 13:15
34145 13:10
52345 15:17
52444 13:12
56344 14:20
76844 19:10
 

atlantij

Guest
НЕОПНЯЛ
ТЫжЕ не только по телефону сортируеш...
'SELECT * FROM tab ORDER BY telefon, vremya'
 

Апельсин

Оранжевое создание
fog, что значит - одинаковые номера были вместе, а остальное по времени? Остальное - это что?
 

fog

Рыцарь Джедай
Ну, когда встречается первый раз номер телефона, он становится на своё место в списке, по времени.
Если этот номер встречается ещё раз - он становится не туда где ему положено быть при сортировке по времени, а "приклеивается" к уже имеющейся в списке записи с таким номером.
 

fog

Рыцарь Джедай
т.е. чтобы все одинаковые номера были в списке рядом, по дате сортируется только последний по времени звонок, остальные (более старые) при выборке "липнут" к нему
 

fog

Рыцарь Джедай
tony2001
не получится же, из за сортировки по номеру телефона, по дате будет не правильно сортировать, а это тоже важно.
 

atlantij

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

fog

Рыцарь Джедай
я не пробовал, потому что думаю что не получится.
он отсортирует все поля по номеру телефона,
а в записях где несколько динаховых ном. тел. - по времени.
всё будет работать только доя частей выборки где номера телефонов совпадают.
т.е
34145 17:53
34145 13:15
34145 13:10

но при этом он мне отсортирует так
сначала номера телефонов начинающихся с 1, потом с 2, 3, 4...
а мне не это надо.
 

Апельсин

Оранжевое создание
если более старые звонки, должны идти после, тогда
ORDER by phone ASC, date DESC
 

Апельсин

Оранжевое создание
> а мне не это надо
а как тебе надо?
если тебе безразличен порядок следования телефонных номеров, то тебе должно быть и безразлично по порядку они или нет. если таки там тоже есть какой-то порядок, то ты тогда так и не рассказал какой.
 

KostyaCat

мы где-то рядом
2Апельсин
строчки групируются по номерам, порядок задает дата

по-моему понятно , нет ?
 

fog

Рыцарь Джедай
В первую очередь надо сортировать по времени
 

Bocha

Guest
в Mysql таких возможностей я не видел, но может просто не знаю, а в MSSQL есть COMPUTE, в сочетании с GROUP BY и ORDER BY можно получить желаемый результат
 
Сверху