Topic: Нужна помощь

Всем привет. Как на примере PhoneBook в таблицу выводить последний номер введенного номер телефона с помощью вычис. поля.

Select number from phone where person.id=phone.id_person

Это выводить все введенные номера, а надо чтобы была последняя введенная.

Re: Нужна помощь

Приветствую.


Попробуйте так

(SELECT phone.number FROM phone WHERE person.id=phone.id_person ORDER BY phone.id DESC LIMIT 1)
Dmitry.

Re: Нужна помощь

Спасибо помогло.
Еще один вопрос.
Как на таблице отобразить дату в виде dd.mm.yyyy, это также на вычис. поле. Имеется следующее но не работает.

(SELECT strftime('%dd.%mm.%yyyy', incomedate) FROM BaseTwo ORDER BY BaseTwo.id DESC LIMIT 1)

Спасибо заранее.

Re: Нужна помощь

strftime('%d.%m.%Y', incomedate)

подробней
https://www.sqlite.org/lang_datefunc.html

Dmitry.

5 (edited by alamsho 2017-10-28 17:53:29)

Re: Нужна помощь

спасибо, разобрался.
Есть следующая база данных.
[BaseTwo]
isdictionary=0
^id_Base=Base
>id_mayub=mayub

[mayub]
isdictionary=0
_invalid=TEXT

[Base]
isdictionary=0
_lethal=BOOLEAN

procedure Base_Button8_OnClick (Sender: string; var Cancel: boolean);
var
s: integer;
begin
    s:= SQLExecute('Select Count(*) From BaseTwo where BaseTwo.id_mayub=1 and BaseTwo.id_Base=(Select id from Base where lethal=0)');
    Base.Edit4.Value:= s;
end;

скрипт работает нормально, но надо чтобы в Edit4 попали количество последних введенных данных.
сделал так но не получается.
s:= SQLExecute('Select Count(max(id)) From BaseTwo where BaseTwo.id_mayub=1 and BaseTwo.id_Base=(Select id from Base where lethal=0)');

помогите пожалуйста.

6 (edited by alamsho 2017-10-28 18:03:49)

Re: Нужна помощь

Разобрался, все получился но скрипт довольно длинный, может как то упростить?

s:= SQLExecute('Select Count(*) From Base where lethal=0 and Base.id=(Select id_Base from BaseTwo where id_mayub=1 and BaseTwo.id=(Select max(id) from BaseTwo where BaseTwo.id_Base=Base.id))');

Суть такова. В таблице Base храниться данные Имя (текстовое поле), Умер (Да/Нет) пациента. В таблице BaseTwo храниться диагноз и инвалидность пациента. BaseTwo связана с Base, a таблица mayub (инвалидность) связана с BaseTwo. Пациент может пройти новое обследование, в результате чего может измениться его диагноз и инвалидность.
Например.
Первое обследование - аппендицит и I группа инвалидности
Второе обследование - бронхит и III группа инвалидности

Суть данного скрипта определить количество живых пациентов с группой инвалидности I. Инвалидность определяется по последнему обследованию. На моем примере скрипт должен выдать 0, так у данного пациента по последнему обследованию группа инвалидности III.

Помогите как упростить мой скрипт. Он рабочий.
Спс. заранее.

Re: Нужна помощь

Уважаемый Админ.
Можете помочь по последнему посту?

Re: Нужна помощь

Как правило я могу помочь только с небольшими конкретными вопросами.
И как я понял запрос работает.

Dmitry.

Re: Нужна помощь

Ок.