powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формирование запроса без повторяющихся записей в определенном столбце.
8 сообщений из 8, страница 1 из 1
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888753
minachina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые форумчане! Есть таблица История_Болезни, в ней поля Код_Истории (значения уникальны), Код_Пациента (значения повторяются) Дата_Приема. Нужно сформировать запрос в котором из повторяющихся записей по Код_Пациента осталось бы только последнее по Дата_Приема и все не повторяющиеся записи. С практической точки зрения в дальнейшем надо будет найти пациентов, которые были на приеме пол года назад, и это было их последнее посещение. Заранее благодарю.
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888781
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Акцесса вроде бы такой вариант был лучшим ...
Индекс на (Код_Пациента, Дата_Приема) очень не помешает
Код: vbnet
1.
2.
3.
4.
select t1.*
from История_Болезни t1 left join История_Болезни t2
on t1.Код_Пациента = t2.Код_Пациента and t1.Дата_Приема < t2.Дата_Приема
where t2.Код_Истории is null



пс
left join конечно же :)
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888945
minachina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не работает. Все повторы остались без изменений.
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888963
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT t1.*
FROM История_Болезни AS t1
JOIN ( SELECT Код_Пациента, MAX(t2.Дата_Приема) AS Дата_Приема
       FROM История_Болезни AS t2
/*     WHERE t2.Дата_Приема < #нужная_дата#      */
       GROUP BY Код_Пациента ) AS t3 ON t1.Код_Пациента = t3.Код_Пациента
                   AND t1.Дата_Приема = t3.Дата_Приема



Если возможны два приёма в один день - добавить во внешний запрос группировку по пациенту и дате, и взять максимальный код записи.
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888970
Сначала создайте запрос1 с группировкой по Код_Пациента и Max(Дата_Приема). Затем новый запрос2 на запрос1 и таблице, связанным по этим двум полям. Там же можно указать условие "пол года назад".
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39888985
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
minachina
... Есть таблица История_Болезни, в ней поля Код_Истории (значения уникальны), Код_Пациента (значения повторяются) ....
может я чё не понимаю-в одной истории много пациентов(история болезни конкретного пациента или статистика по конкретному заболеванию,которая,по любому, выбирается из историй болезни пациентов)Хотелось бы глянуть на схему БД
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39893031
minachina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Спасибо! Все оказалось просто.
...
Рейтинг: 0 / 0
Формирование запроса без повторяющихся записей в определенном столбце.
    #39893065
minachina
Кривцов Анатолий, Спасибо! Все оказалось просто.
Собственно, благодарите не так меня, как коллегу Akina. Он проиллюстрировал это примером запроса с подчиненным запросом.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формирование запроса без повторяющихся записей в определенном столбце.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]