|
Определение возраста
|
|||
---|---|---|---|
#18+
вот такой код набросал.. я не до конца понял задачу поэтому как мне кажется этот код должен работать правильно, но он не выводит ничего. хотя все условия учел Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:19 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991вот такой код набросал.. я не до конца понял задачу поэтому как мне кажется этот код должен работать правильно, но он не выводит ничего. хотя все условия учел Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Раз набросал такой код, то наверное, знаешь, что и куда этот код должен выводить? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:30 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, код должен выводить те случаи в которых код МКБ не соответствует возрасту пациента. но что-то ничего не выводит ни окно msgbox ни данные селекта ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:33 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991вот такой код набросал.. я не до конца понял задачу поэтому как мне кажется этот код должен работать правильно, но он не выводит ничего. хотя все условия учел Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ну предположи, что 1-е условие соблюдается, а 2-е - нет. Куда попадешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:36 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, хм.. этот момент я упустил. я не уверен что логика моего кода правильная. не совсем понял как проверить соответствие ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:40 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
все равно не выводит IF hediag.compr='>=' if pacient.agep>=hediag.age IF sluch.ds0=hediag.code AND sluch.ds1=hediag.code AND sluch.ds2=hediag.code SELECT * FROM sluch ELSE MESSAGEBOX("12312") ENDIF ELSE messagebox("11111") ENDIF ENDIF ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 14:43 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Ye/ может так тебе понятней станет почему ничего не выводит. Скорее всего select пустой WAIT "hediag.compr = " + hediag.compr WINDOW WAIT "pacient.agep = " + STR(pacient.agep) WINDOW WAIT "hediag.age = " + STR(hediag.age) WINDOW WAIT "hediag.code = " + hediag.code WINDOW WAIT "sluch.ds0 = " + sluch.ds0 WINDOW WAIT "sluch.ds1 = " + sluch.ds1 WINDOW WAIT "sluch.ds2 = " + sluch.ds1 WINDOW IF hediag.compr='>=' IF pacient.agep >= hediag.age IF sluch.ds0 = hediag.code AND sluch.ds1 = hediag.code AND sluch.ds2 = hediag.code SELECT * FROM sluch INTO CURSOR MyCursor SELECT MyCursor BROWSE ELSE MESSAGEBOX("12312") ENDIF ELSE messagebox("11111") ENDIF ENDIF[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:04 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, сейчас пытаюсь разобраться. А вообще мой код правильно будет проверять соответствие кода МКБ т.е полей ds0,ds1,ds2 возрасту пациента? так как показано в таблице hediag? я выше описывал пример соответствия в hediag ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:09 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
еще одно уточнение в sluch поля Ds0,ds1,ds2 имеют формат Z00.0 а в таблице Hediag поле code имеет формат Z000 без точки. надо еще и это учитывать в моем коде не учитывается т.к. не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:13 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, Потому что описываешь мутно: "поле age в hediag содержат такие значения 14 может 19 и т.д. а поле compr такие ">=", "<", ">". " Понятней нужно делать, потому что у тебя это перед глазами, а здесь ничего не видно. Если у тебя таблица, то и надо приводить таблицу, а не абстрактное перечисление. age______headiag 14_______????? 19_______????? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:15 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, вот таблица и поля курсора пациент и sluch: create cursor pacient ( ; id_paс I, ; vpolis I, ; spolis C(3), ; npolis C(16), ; smo C(5), ; smo_ogrn C(13), ; smo_ok C(5), ; smo_nam C(20), ; novor I, ; inogor C(6), ; fam C(30), ; im C(30), ; ot C(30), ; w I, ; dr t, ; fam_p C(30), ; im_p C(30), ; ot_p C(30), ; w_p I, ; dr_p t, ; mr C(10), ; doctype I, ; docser C(3), ; docnum I, ; snils I, ; okatog I, ; okatop I, ; comentz C(10), ; agep I, ; adres C(18)) CREATE CURSOR sluch ( ; id C(12), ; idcase I, ; mcod C(6), ; glpu C(6), ; spolis C(3), ; npolis C(16), ; novor I, ; usl_ok I, ; vidpom I, ; npr_mo I, ; order I, ; t_order I, ; podr C(6), ; profil I, ; det I, ; nhistory I, ; date_1 t, ; date_2 t, ; ds0 C(6), ; ds1 C(6), ; ds2 C(6), ; code_mes1 I, ; code_mes2 I, ; rslt I, ; ishod I, ; prvs I, ; iddokt I, ; os_sluch I, ; idsp I, ; ed_col I, ; tarif I, ; sumv I, ; oplata I, ; sump I, ; refreason I, ; sank_mek I, ; sank_mee I, ; sank_ekmp I, ; comentz C(10), ; inogor C(6), ; pr_nov I) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:23 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
IgorNG, я привел одну строку из hediag чтобы было нагляднее как представлено соответствие кода МКБ возрасту ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 15:25 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
с точкой в hediag.code проблем то не возникнет я думаю можно данные вывести в курсор и в курсоре заменить Z000 на Z00.0 при помощи STUFF(). .а вот логику не до конца понял я. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2012, 16:12 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Чтобы проверить в таблице hediag первую в первой записи поле age сделал 1, а поле compr=">=" и пишу следующий код: Тут выбираю в курсор все записи из hediag и поле code из формата Z000 делаю таким Z00.0 Код: sql 1. 2. 3. 4. 5. 6.
а тут проверяю, если поле compr=">=" если поле pacient.age>=curs1.age то идет проверка кода МКБ они равны в hediag и в курсоре sluch, но результат в курсор cr не выводится и brow не выводит ничего на экран. может в коде у меня логика неправильная? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 08:23 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
насколько я понимаю логика проверки соответствия кода МКБ возрасту должна быть такой: нужно проверить равно ли поле hediag.compr например ">=", далее больше ли или равно поле pacient.agep полю hediag.age. Если больше или равно нужно проверить равен ли код МКБ из sluch коду МКБ из hediag.code и если они равны то получается код МКБ из случая соответствует возрасту этого пациента. но что-то программно не получается сделать или не до конца понял логику я ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 08:29 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Люди, у меня такой даже не работает. Почему? Не понятно. в первой записи поле pacient.agep=37 , а поле curs1.age=1, также первая запись поле curs1.compr=">=". Ведь должен по логике выводиться messagebox? что за непонятки? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 10:50 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
if curs1.age=1 messagebox("111") endif не работает.. у меня свет вырубился недавно и немного глючить стал fox может быть из-за этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:06 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991не работаетТекст ошибки где? курсор curs1 вообще существует или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:40 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, существует конечно.. текст ошибки нету.. логику задачи до конца понять не могу и возможно я что-то не так пишу в условиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:45 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991текст ошибки нетуЗначит, curs1.age<>1. Всё логично Ещё раз можете описать, как связаны таблицы "пациент" и "случай"? Связь "хедиага" с ними вроде бы ясна... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 11:52 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, pacient и sluch можно связать по полям npolis и spolis. Если нужно могу привести все поля из курсорв ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:04 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, поле age Не пустое, а просто он видимо проверяет весь курсор и на последней записи останавливается. а там age равно 18, но все равно по логике должен был вроде выдать результат. Просто я не понял до конца логику видать.. третий день вожусь(( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:21 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, переходим в выделенную тему, так, думаю, лучше будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2012, 12:36 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, Включи эту UDF в SELECT: UDF определения полных лет Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2012, 11:23 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Jonny540, Сейчас попробую разобраться в вашем коде. Но у меня возник вопрос. Написал такой же код для проверки соответствия кода МКБ для случая возрасту пациента вот код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В таблице Hediag специально изменил возраст которому соответствует этот код на 45 лет, у пациента возраст определяется 43 года. Если я правильно понимаю работу этого кода то происходит выборка только тех случаев (случаи она должна выводить) для которых код МКБ соответствует возрасту. Но т.к. я в hediag сделал возраст для кода Z000 45 а у пациента с таким кодом возраст 43. то не должен был этот случай выводиться, но он выводится. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2012, 12:12 |
|
|
start [/forum/topic.php?fid=41&msg=38020295&tid=1583157]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 422ms |
0 / 0 |