Перейти к содержимому

Фотография
- - - - -

Помогите с запросом


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 6

#1 Feast

Feast

    Прохожий

    Топикстартер
  • Участник
  • 5
    60 сообщ.

Отправлено 11 Март 2013 в 21:33

Добрый день! Сломал голову, не понял как одним запросом всё сделать...
Вобщем есть табличка с событиями приходов пациентов. В ней поля name date
Так вот задача из этой таблички выбрать данные таким образом:
1) Вывести все данные сортируя по дате по возрастанию
2) Если встречается пациент, информация о котором хранится в таблице в нескольких записях - вывести их подряд
Т.е. пример:
Есть таблица:
Галя 2010-18-03
Миша 2010-18-01
Света 2010-18-04
Семен 2010-18-04
Катя 2010-18-03
Галя 2010-18-15
Галя 2010-18-12
Миша 2010-18-24

И выборка должна выдать строки в таком порядке:
Миша 2010-18-01
Миша 2010-18-24
Галя 2010-18-03
Галя 2010-18-12
Галя 2010-18-15
Катя 2010-18-03
Света 2010-18-04
Семен 2010-18-04

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

Сообщение отредактировал Feast: 11 Март 2013 в 21:34

  • 0

Спонсор

#2 ALEXu

ALEXu

    в сером

  • Участник
  • 77
    307 сообщ.

Отправлено 12 Март 2013 в 07:53


order by name asc, date desc


Сообщение отредактировал ALEXu: 12 Март 2013 в 07:54

  • 0

#3 Feast

Feast

    Прохожий

    Топикстартер
  • Участник
  • 5
    60 сообщ.

Отправлено 13 Март 2013 в 10:48

К сожалению, такой вариант не работает(( Даты путаются.

Сообщение отредактировал Feast: 13 Март 2013 в 10:50

  • 0

#4 ALEXu

ALEXu

    в сером

  • Участник
  • 77
    307 сообщ.

Отправлено 13 Март 2013 в 11:55

Какой тип поля у даты?
  • 0

#5 Feast

Feast

    Прохожий

    Топикстартер
  • Участник
  • 5
    60 сообщ.

Отправлено 13 Март 2013 в 14:55

Date

Вобщем срочность повысилась, пришлось через php всё раскидать как нужно(( Но вопрос на интерес остался)
  • 0

#6 ALEXu

ALEXu

    в сером

  • Участник
  • 77
    307 сообщ.

Отправлено 13 Март 2013 в 15:27

SELECT запрос в студию.
  • 0

#7 Feast

Feast

    Прохожий

    Топикстартер
  • Участник
  • 5
    60 сообщ.

Отправлено 15 Март 2013 в 08:24

select t.start_date,ts.*,sp.price from ticket_services ts JOIN tickets t ON t.id = ts.id_ticket JOIN patients p ON p.id = t.id_patient JOIN service_prices sp ON sp.id_service = ts.id_service where ts.id in (select id_tick_serv from account_tick_servs where id_account = 17863) AND sp.id_price_type = 10 ORDER BY t.start_date, p.last_name

Ну из всего этого мне вот t.start_date и p.last_name важно было для сортировки.
Ну и я вобщем в PHP распихал все строки в группки по пациентам и замерджил. Прямо срочно срочно просили - это первое, что в голову пришло.

foreach($services as $serv)
{
$groups[$serv['pid']][] = $serv;
}
$servs = array();
foreach($groups as $group)
{
$servs = array_merge($servs,$group);
}
  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей