Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
yMHukyM
Member

Откуда:
Сообщений: 7
Добрый день!
Есть проект Delphi + база Access.
1 таблица: (Card)
id
Фамилия
Имя
Отчество
Дата рождения
Участок прикрепления

2 таблица (flg)
Дата прохождения
Врач
Результат
kod_card_id

Таблицы связаны в Access
В проекте только для вывода отчета размещен компонент frxReport

В отчете FastReport есть диалоговое окно с выбором даты и кнопкой ОК.

На вкладе Данные следующие компоненты: AdoDataBase1 для подключения к базе
AdoQuery1
sql запрос:
SELECT s.*        
FROM
    spr_card_flg s


AdoQuery2
sql-запрос:
SELECT f.DateXRay_Data, f.Projection, f.Organ, f.FinDiagn, f.Vrach, f.Kod_spr_card_flg, s.id
FROM
    spr_card_flg s
    INNER JOIN flg f ON (s.id=f.Kod_spr_card_flg)
    WHERE f.DAteXRay_Data < :datax


Params - datax берется из диалоговой формы DataEdit1.Date
Master - Adoquery1 указан


Надо выбрать пациентов меньше указанной даты

Проблема в следующем:
Данные выбираются их всего 2 получается из таблицы flg
но они прописываются всем пациентам из первой таблицы card

Подскажите как решить проблему?
29 ноя 18, 15:39    [21748758]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46350

yMHukyM
Подскажите как решить проблему?

Убрать из второго запроса таблицу spr_card_flg и вместо него добавить параметр для связи с
мастером.

Posted via ActualForum NNTP Server 1.5

29 ноя 18, 15:46    [21748773]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
yMHukyM
Member

Откуда:
Сообщений: 7
а примерно можете написать как это выглядит ?
29 ноя 18, 15:49    [21748782]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
goldmi45
Member

Откуда:
Сообщений: 1065
yMHukyM
а примерно можете написать как это выглядит ?

SELECT f.DateXRay_Data, f.Projection, f.Organ, f.FinDiagn, f.Vrach, f.Kod_spr_card_flg
FROM
    flg f
WHERE 
  f.Kod_spr_card_flg = :Id And
  f.DAteXRay_Data < :datax
29 ноя 18, 15:52    [21748785]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
yMHukyM
Member

Откуда:
Сообщений: 7
спасибо вам большое
вот что я еще прописал в Params Adoquery2, если вдруг кто столкнется с подобным
Id integer <AdoQuery1."id">
datax Date DateEdit1.Date
29 ноя 18, 16:03    [21748802]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
yMHukyM
Member

Откуда:
Сообщений: 7
а этот запрос можно модифицировать чтоб выбирать по максимальной дате, т.к. у пациента может быть несколько флюоорографий?
goldmi45
yMHukyM
а примерно можете написать как это выглядит ?

SELECT f.DateXRay_Data, f.Projection, f.Organ, f.FinDiagn, f.Vrach, f.Kod_spr_card_flg
FROM
    flg f
WHERE 
  f.Kod_spr_card_flg = :Id And
  f.DAteXRay_Data < :datax
29 ноя 18, 16:46    [21748873]     Ответить | Цитировать Сообщить модератору
 Re: fastreport выборка из двух таблиц по дате (дублируются данные)  [new]
yMHukyM
Member

Откуда:
Сообщений: 7
SELECT f.DateXRay_Data, f.Projection, f.Organ, f.FinDiagn, f.Vrach, f.Kod_spr_card_flg
FROM
    flg f         
WHERE f.Kod_spr_card_flg = :Id
GROUP BY f.DateXRay_Data, f.Projection, f.Organ, f.FinDiagn, f.Vrach, f.Kod_spr_card_flg  
HAVING MAX(f.DateXRay_Data) < :datax
29 ноя 18, 19:02    [21749016]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить