|
Определение возраста
|
|||
---|---|---|---|
#18+
я когда-то написал и всегда использовал такую функцию function years(mdr) if type('mdr')!='D'.and.type('mdr')!='T' return 1 endif local i *set step on i=0 i=year(date())-year(mdr) if month(mdr)>month(date()).or.(day(mdr)>day(date()) .AND. month(mdr)=>month(date())) i=i-1 endif return i ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2009, 11:30 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Евгений1111, смотрю ваш код для определения возраста по даже рождения, как я понял возраст вычисляется от системной даты, а как сделать так чтобы вместо системной даты можно было использовать дату из таблицы и результат определять просто как целое число, а не как в вашем коде ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 10:30 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991 как сделать так чтобы вместо системной даты можно было использовать дату из таблицы замени date() на свою переменную или поле с нужной датой. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 10:37 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991Евгений1111, смотрю ваш код для определения возраста по даже рождения, как я понял возраст вычисляется от системной даты, а как сделать так чтобы вместо системной даты можно было использовать дату из таблицы и результат определять просто как целое число, а не как в вашем коде "а как сделать так чтобы вместо системной даты можно было использовать дату из таблицы" Неужели тут может быть несколько вариантов? "результат определять просто как целое число, а не как в вашем коде" Из командного окна попробуй посмотреть на результат и вопрос отпадет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 10:38 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Dima T, заменил он пишет невозможно найти такой объект. lnYears=YEAR(pacient.dr)-year(ldBirthDay) lnMonth=MONTH(pacient.dr)-MONTH(ldBirthDay) вот так пишу показывает -40 лет. у меня есть таблица пациентов там у них дата рождения поле dr. Есть другая таблица где есть поле dat.obsl дата обследования. и вот мне нужно найти сколько лет было пациентам на момент обследования ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 10:46 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
чтобы просто как целое число выводил оказалось ерунда ))) в конец кода не посмотрел, а там готовый ответ. А как сделать чтобы для пациентов определять возраст на момент даты обследования ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:01 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, Dima T тебе ж уже ответил ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:06 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, Вот смотрите пожалуйста: без всяких дней и месяцев просто возраст определить пишу такой код из выше описанного, убрав все остальное. В поле pacient.dr дата рождения 1975.05.28, дата обследования поле sluch.data_2 равно 2012.09.13. пишу так: Код: sql 1.
вроде результат должен быть 37, а выводится 43. Не понимаю с чем это связано в курсоре pacient много таких пациентов, в курсоре sluch тоже много записей. и когда пишу так чтобы в поел agep курсора pacient вывести возрасты пишет объект pacient Не найден Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:31 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
заметил что в курсоре дата идет так 28.05.1975 если в обеих курсорах дата в таком формате тоже мне кажется правильно должен результат выводится, однако не выводит ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:46 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991IgorNG, Вот смотрите пожалуйста: без всяких дней и месяцев просто возраст определить пишу такой код из выше описанного, убрав все остальное. В поле pacient.dr дата рождения 1975.05.28, дата обследования поле sluch.data_2 равно 2012.09.13. пишу так: Код: sql 1.
вроде результат должен быть 37, а выводится 43. Не понимаю с чем это связано в курсоре pacient много таких пациентов, в курсоре sluch тоже много записей. и когда пишу так чтобы в поел agep курсора pacient вывести возрасты пишет объект pacient Не найден Код: sql 1. 2.
Из командного окна попробуй так: d1 = {^1975.05.28} d2 = {^2012.09.13} ?YEAR(d2) - YEAR(d1) Ну и нужно проверить количество месяцев, а то будет прибавлять лишний год, если ДР еще не наступил ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:52 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, если в таком формате то верно выводит, а в курсоре у меня дата так идет 28.05.1975 можно сделать чтобы дата была в формате 20.05.1975 или как поступить тут: lnYears=YEAR(sluch.date_2)-year(pacient.dr) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 11:57 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Я понял почему 43 выводится и он правильно выводит 43 это оказывается возраст последнего человека она вычисляет. А как для всех пациентов вычислить? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:01 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, SCAN ... ENDSCAN или SELECT, но нужно связать две таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:08 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
lnYears хранит одно число и видимо он в конец его прописывает к последнему человеку. попробовал такой вариант тоже для последнего только вычисляет: Код: sql 1.
Можно сделать чтобы вычислял возраст для первого например и сразу записывал в поле pacient.agep? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:11 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Спасибо Scan помогло вроде. Сейчас проверю правильно ли обновил записи в курсоре для уверенности ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:14 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991lnYears хранит одно число и видимо он в конец его прописывает к последнему человеку. попробовал такой вариант тоже для последнего только вычисляет: Код: sql 1.
Можно сделать чтобы вычислял возраст для первого например и сразу записывал в поле pacient.agep? Чем связаны таблицы usl и pacient ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:14 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, можно связать по полям npolis и spolis, я проверил пару записей вроде правильно возраст определил для пациентов. Вы думаете логически неправильно вычисляет возраст? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:35 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
вот код который вычисляет возраст для всех пациентов: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:36 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, Не думаю. Во-первых зачем LOOP Во вторых SCAN...ENDSCAN работает по одной выбранной таблице. Поэтому, данные из второй таблицы (pacient) будут браться из одной и той же записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:43 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, Loop чтобы передать управление обратно Scan. Ну не знаю вроде как правильно вычисляет. Если есть более правильный вариант напиши. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:48 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991вот код который вычисляет возраст для всех пациентов: Код: sql 1. 2. 3. 4.
Не может этот код правильно вычислять возраст ВСЕХ пациентов, поскольку SCAN делаешь по таблице pacient и при этом из таблицы USL берешь ОДНО И ТО ЖЕ ЗНАЧЕНИЕ. Если только таблицы у тебя не связаны SET RELATION ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 12:54 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Код: xml 1.
не пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 13:01 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
P-232 Код: xml 1.
не пробовал? Судя по всему - нет. Там букв много :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 13:06 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, таблицы никак не связываю.. это курсоры полученные из xml файла. если так оставить тоже наверное ошибки нету потому что в курсоре usl поле data_in вернее год будет всегда одинаковым. помогите разобрать логику другой задачи, вернее это часть этой же задачи. есть таблица Hediag там есть основные поля age, compr и code - это код МКБ. Есть вычисленные возрасты пациентов в поле pacient.age. В курсоре sluch есть три поля ds0,ds1,ds2 это коды МКБ. и в курсоре usl есть поле ds тоже КОД МБК нужно проверить соответствие кода МБК для sluch - случай и для usl - услуга возрасту пациента. поле age в hediag содержат такие значения 14 может 19 и т.д. а поле compr такие ">=", "<", ">". Для каждого кода МКБ в Hediag поля age и compr имеют свои значения. Не могу понять как проверять соответствие кода МКБ в sluch и usl для возраста. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 13:21 |
|
|
start [/forum/topic.php?fid=41&msg=38019822&tid=1583157]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 279ms |
total: | 434ms |
0 / 0 |