Вниз  MySQL и мелкие вопросы
- 11.01.2017 / 16:09copy  #480117
Koenig
  Супермодератор

 
Сейчас: Offline
vl@volk, :gg: stackoverflow
__________________
 Магистр Мёда
- 24.01.2017 / 23:00copy  #481115
OLEKMAY
  Пользователь

OLEKMAY 
Сейчас: Offline
Привет всем! Подскажите пожалуйста как можно реализовать запрос на выборку.. написал вот такое:
  1. SELECT d1.MidPointValue AS v1, d2.MidPointValue AS v2 FROM RiskDriver_History AS d1, RiskDriver_History AS d2 WHERE (d2.id = (SELECT `id` FROM `RiskDriver_History` WHERE Year = d1.Year AND RiskDriverId = '5' AND DATE(Date)>='1990-01-31' ORDER BY `id` DESC LIMIT 1) AND d1.RiskDriverId = '19' AND DATE(d1.Date)>='1990-01-31') GROUP BY d1.Year ORDER BY d1.Year ASC
Запрос выбирает два значения с таблицы RiskDriver_History, в которых поля RiskDriverId совпадают с двумя указанными id (в данном случае 5 и 19), а так же у которых совпадает год.. впринципе данный запрос успешно работает, но есть одно небольшое НО: мне необходимо выбрать первое значение, тоесть v1 с максимальным id, но ORDER BY d1.id не работает из-за GROUP BY d1.Year.. (для каждого года выбирается уникальное значение, а если добавить id, то начинает выбирать несколько значений для каждого года).. как-то так.. помогите как то упростить данный запрос, а то как по мне то это куча бреда, а упростить не могу. Такая ситуация возникла из-за того что запрос я переписываю с макросов Excel, а там данные значения выбирались в два этапа: сначала была сохраненная выборка данных в Access, а потом к ней отправлялся запрос на выборку из нее
- 25.01.2017 / 02:50copy  #481122
Koenig
  Супермодератор

 
Сейчас: Offline
OLEKMAY, а сколько строк возвращает запрос? если нужна первая, поставь лимит
__________________
 Магистр Мёда
- 25.01.2017 / 02:53copy  #481123
Koenig
  Супермодератор

 
Сейчас: Offline
ну и группировать или сортировать можно не только по одному полю
__________________
 Магистр Мёда
- 25.01.2017 / 09:38copy  #481126
aNNiMON
  Супервизор

 
Сейчас: Offline
OLEKMAY, http://sqlfiddle.com/
Схему БД, несколько тестовых данных и сам запрос туда. Тогда возрастут шансы на ответ.
__________________
 let live
- 23.02.2017 / 10:20copy  #483000
ДубоХирург
  Пользователь

 
Сейчас: Offline
У меня вопрос по проектированию БД. Пусть у нас есть база врачей, и для них есть некоторое количество диапазонов, например, время, в которое они работают. В каком виде и где лучше хранить такие данные, в таблице с остальными данными врача или в отдельной таблице?
- 23.02.2017 / 10:29copy  #483001
aRiGaTo
  Пользователь

 
Сейчас: Offline
ДубоХирург, в зависимости от требуемой степени детализации. Я бы делал в отдельной. Врач может работать не каждый день, у него могут быть ночные дежурства, «рваный» график работы (например, часть утром, часть вечером). Но это не точно. Если отыщу исходники диплома, то могу сказать, как это реализовано в реальной МИС (если там такое вообще есть).
__________________
 lys mit lys
- 23.02.2017 / 12:11copy  #483004
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
ДубоХирург, если график стабильный, то можно обойтись одним полем со значением вида пн-пт 8:00-16:00. Добавлю к aRiGaTo, то что ещё график работы может быть посменный как у охраны (сутки через двое) ну или их комбинации. Поможет только детальное описание процесса работы
__________________
 \m/
Наверх  Всего сообщений: 728
Фильтровать сообщения
Поиск по теме
Файлы топика (22)
Поиск по форуму
Новые вверху
  © aNNiMON (Melnik Software)
Онлайн: 14 (3/11)
 
Яндекс.Метрика