| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > Выборка без одинаковых записей [MS sql server2005] |
| Автор: GUZstav 22.5.2009, 07:49 |
| Доброго времени суток. Делаю арм для учета пациентов. Хочу сделать запрос на выборку пациентов по заболеванию. Но каждый пациент может иметь несколько диагнозов поставленных в разное время. Таблицы: Есть три таблицы: 2 главные, 1 ассоциативная http://pic.ipicture.ru/uploads/090522/mrUtT44Avy.jpg Запрос: SELECT T_karta.id, T_karta.surname, T_karta.name, T_karta.last_name, T_karta.data_rozh,T_diagnos.data,T_diagnos.diagnos FROM T_karta INNER JOIN T_kar_diag ON T_karta.id = T_kar_diag.id_bol INNER JOIN T_diagnos ON T_kar_diag.id_diag = T_diagnos.id WHERE (T_diagnos.diagnos = ?) ORDER BY T_karta.surname, T_diagnos.data DESC Но этот запрос выбирает все записи, а мне надо, чтобы для одного человека - один диагноз с самой поздней датой. Заранее благодарю. |
| Автор: DimW 22.5.2009, 08:42 | ||||
1)
2)
поправил второй запрос |
| Автор: GUZstav 24.5.2009, 11:58 |
| Спасибо, выручил. Еще вопрос: если для d2.data задать диапазон between(чтобы юзер мог посмотреть стат за период времени), его ставить сюда: select max(d2.data) from T_kar_diag kd2 ,T_diagnos d2 where kd2.id_diag = d2.id and kd2.id_bol = k.id and max(d2.data) between ? and ?) |