Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите переделать запрос в запрос с группировкой (Delphi + БД) / 9 сообщений из 9, страница 1 из 1
20.02.2019, 16:42
    #39776839
yMHukyM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
Добрый день!
Есть две таблицы Пациенты и Данные о его флюорографии

Есть запрос, который выводит список пациентов, максимальная дата флг пациента меньше указанной, по заданной организации и участку.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT spr_card_flg.fam, spr_card_flg.im, spr_card_flg.otch, spr_card_flg.data_r, 
spr_card_flg.uchast, spr_card_flg.org_prik, spr_card_flg.adr_prop, spr_card_flg.adr_fak, Max(flg.DateXRay_Data) AS [Max-DateXRay_Data], 
spr_card_flg.id
FROM spr_card_flg INNER JOIN flg ON spr_card_flg.id = flg.Kod_spr_card_flg
GROUP BY spr_card_flg.fam, spr_card_flg.im, spr_card_flg.otch, spr_card_flg.data_r, spr_card_flg.uchast, 
spr_card_flg.org_prik, spr_card_flg.adr_prop, spr_card_flg.adr_fak, spr_card_flg.id
HAVING ((Max(flg.DateXRay_Data))<= :datax)  and (spr_card_flg.org_prik = :org_prik) and      
(spr_card_flg.uchast = :uchast)
ORDER BY spr_card_flg.fam;



Не могу переделать этот запрос, чтобы показывалась сводная информация по участкам и кол-ву пациентов по максимальной дате флг.
Т.е. чтобы было:
Участок 12 - 56
Участок 13 - 87

Делаю вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT(s.id), s.uchast
FROM
    spr_card_flg s
    INNER JOIN (select distinct f.kod_spr_card_flg from flg f where f.datexray_data <=#01/31/2017#) f ON (f.Kod_spr_card_flg=s.id)
WHERE
    s.org_prik =:org_prik
GROUP BY s.uchast



То туда также попадают пациенты у которых есть дата флг больше указанной.
Например
Иванов И.И.
ФЛГ 23.10.2016, 02.12.2018
Запрос берет его, т.к. одно из значений меньше указанной даты.

Можно сделать так, чтобы он брал именно МАКСИМАЛЬНУЮ дату? т.е. 02.12.2018 и тогда бы он его не считал?
Надеюсь понятно описал, суть проблемы.
...
Рейтинг: 0 / 0
20.02.2019, 16:57
    #39776844
RackotPro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
yMHukyM, тебе именно запрос такой нужен? Почему бы не использовать хранимку?
...
Рейтинг: 0 / 0
20.02.2019, 17:00
    #39776847
yMHukyM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
Извините за вопрос, а что закон хранимка я первый раз такое слышу. Желательно запрос.
...
Рейтинг: 0 / 0
20.02.2019, 18:09
    #39776896
kv67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
yMHukyM,

навскидку

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT COUNT(s.id), s.uchast
FROM
    spr_card_flg s
    INNER JOIN (select f.kod_spr_card_flg from flg f group by f.kod_spr_card_flg having 
       max(f.datexray_data) <=#01/31/2017#) f ON (f.Kod_spr_card_flg=s.id)
WHERE
    s.org_prik =:org_prik
GROUP BY s.uchast
...
Рейтинг: 0 / 0
20.02.2019, 18:37
    #39776909
RackotPro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
yMHukyMИзвините за вопрос, а что закон хранимка я первый раз такое слышу. Желательно запрос.

Я пожалуй спасую, несколько раз прочёл не понял)), без понимания архитектуры БД не смогу помочь.
...
Рейтинг: 0 / 0
20.02.2019, 18:55
    #39776919
yMHukyM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
kv67, большое спасибо) про having я забыл совсем, что можно было его применить, т.к. через where функцию max нельзя использовать
работает отлично, переделал еще себе пару запросов)))
...
Рейтинг: 0 / 0
20.02.2019, 19:29
    #39776933
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
а при чем тут Дельфи?
...
Рейтинг: 0 / 0
20.02.2019, 20:04
    #39776942
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
yMHukyM,

ты хотя бы БД обозначил! Вдруг это ADABAS
...
Рейтинг: 0 / 0
20.02.2019, 20:11
    #39776946
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите переделать запрос в запрос с группировкой (Delphi + БД)
yMHukyMИзвините за вопрос, а что закон хранимка я первый раз такое слышу. Желательно запрос.

SQL stored procedure
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите переделать запрос в запрос с группировкой (Delphi + БД) / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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