|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991нужно первый вариант использовать как подзапрос в другом запросе который будет делать выборку по условию where checkmkb=.t. ?Да. Или дописать к исходному запросу это же условие, только в секции having. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:10 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, Так правильно? Только в результате пустая выборка получается Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:16 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Если писать просто запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
то в результате выводятся все случаи услуг и поле chemkb в котором все значения равны .NULL. почему везде null если есть услуги у которых возраст пациента соответствует коду мкб ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:25 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991, запрос правильный. Ну а выборка... попробуйте создать таблицы с такими записями, чтобы точно были записи в результате, и выполните запрос на них. Если не получится - эти тестовые таблицы выложите тут. ЗЫ. а может, splolis/npolis - не числа, а строки? тогда оберните их в аллтрим и сравнивайте с помощью "==". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:25 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991то в результате выводятся все случаи услуг и поле chemkb в котором все значения равны .NULL.Значит, что-то с джойном таблицы "хедиаг". Давайте сюда таблицу хедиаг и по паре строк из таблиц "пациент", "услуга" (тех, в которых точно должно быть соответствие). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 10:27 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, spolis и npolis это строки. А на счет hediag в таблице в некоторых случаях поле compr пустое. Может поэтому? таблице hediag нельзя ничего менять. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 11:18 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
что-то у меня фокспро глючит не смог удалить ненужные записи из hediag поэтому дам ссылку чтобы скачать архив. Там Hediag,pacient и usl таблицы Ссылка ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 11:32 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
А нельзя ли сделать так? Проверить поля hediag.age и hediag.compr. Далее случай 1, если поле compr=">" и возраст пациента больше чем hediag.age, то проверить соответствует ли код МКБ этому возрасту, если да то занести эту услугу в курсор, если нет перейти ко второму случаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 15:48 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
gomo(д_рожд, 12*кол_во_лет) < дата_границы или *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FUNCTION возраст *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PARAMETERS _дат1, _дат2 if _дат2<_дат1 RETURN 'Не верно заданы даты! (Дата рождения должна быть меньше даты определения возраста)' endif _gg =YEAR(_дат2) - YEAR(_дат1) _mm =MONTH(_дат2)- MONTH(_дат1) _dd =DAY(_дат2) - DAY(_дат1) IF _dd<0 _mm=_mm-1 ENDIF IF _mm<0 _gg=_gg-1 _mm=12+_mm ENDIF _xxx=IIF(INLIST(VAL(RIGHT(STR(_gg,2),1)),1,2,3,4),"г.","л.") _gg=IIF(_gg=0,"",STR(_gg,2)+_xxx) _mm=IIF(_mm=0,"",STR(_mm,2)+"мес.") _возраст=_gg+' '+_mm ***---------------------------------------------------------------------- IF (ALLT(_возраст)="1мес.".AND._dd<0).OR.EMPTY(_возраст) _кол_дней=ALLT(STR(_дат2-_дат1)) _назв_д="" DO CASE CASE _кол_дней="11".OR._кол_дней="12".OR._кол_дней="13".OR._кол_дней="14" _назв_д="дней" CASE SUBSTR(_кол_дней,LEN(_кол_дней))="1" _назв_д="день" CASE SUBSTR(_кол_дней,LEN(_кол_дней))="2" _назв_д="дня" CASE SUBSTR(_кол_дней,LEN(_кол_дней))="3" _назв_д="дня" CASE SUBSTR(_кол_дней,LEN(_кол_дней))="4" _назв_д="дня" OTHERWISE _назв_д="дней" ENDCASE _возраст=_кол_дней+_назв_д ENDIF RETURN _возраст ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2012, 21:09 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Выяснилось, что код не совсем правильно проводит выборку. Я оставил в таблице hediag 5-6 записей и в полях compr указал все возможные условия (>,<,>=,<=). Указал возрасты в поле age. Код такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Когда запускаю программу и нажимаю кнопку для выполнения выборки в результате выводятся все значения а в поле checkmkb везде стоит F. Далее у меня стоит еще одна кнопка, которая отображает услуги, пациентов, и случаи, когда ее нажимаю отображает все и если потом нажать ту же кнопку которая выполняет вышеуказанный код, то в поле Checkmkb уже везде T. Помогите разобраться в чем причина? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 08:26 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Т.е. код не выводит правильно. В hediag есть код МКБ который соответствует пациенту возраст, которого <=1 года, а в таблице пациент у пациента с таким кодом возраст больше чем 1 год. Следовательно в этом поле должен был checkmkb иметь значение F, но он выдает то T то F ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 08:43 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Проверьте у себя пожалуйста.. Вы говорите код почти готовый, но вот так по разному выводит. Выкладываю весь проект и файлы. (Файлы скинуть в корень диска C) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 08:55 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991Проверьте у себя пожалуйста..Проверил. Вот здесь 13409609 вы писалиДима1991дополнил код tanglir условиями которые вообще могут быть в hegiag.compr получилось так: - так вот, получилось совсем не то, что было изначально. Вот здесь 13424847 уже я сам сказал tanglirДима1991, запрос правильный., но ошибся - запрос всё-таки неправильный, просто я тогда не заметил этот косяк (в глаза он не бросается). Разберитесь с алиасами, и всё станет нормально. Хинт - смотрите мой запрос в той теме, ищите отличия от своего в селект-части. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 10:26 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, В какой теме искать ваш код? можно ссылку? А то столько кодов тут, не разберешь какой из них подходящий. И еще вопрос. Ваш код на который вы указываете правильный или косяк есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 10:31 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
вот ваш код в другой теме: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
вот код, который я изменил под свой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Но по-прежнему во всех полях выдает F. Вы можете у себя проверить и выложить рабочий код? Уже сколько неделя прошла а я с места не сдвинулся ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 10:45 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991Но по-прежнему во всех полях выдает F.А у меня - нет (см. рисунок) Так что теперь смотрите у себя, я в запросе тоже ничего больше не менял. Ну, кроме путей к файлам, ибо у вас с путями швах. И отдельное вам огромное спасибо за кривой рид эвентс - пропишите уже clear events хоть в unload формы, что ли... Дима1991Ваш код на который вы указываете правильный или косяк есть?Правильный. Дима1991Уже сколько неделя прошла а я с места не сдвинулсяИ кто в этом виноват? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 11:20 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, а выложите этот проект пожалуйста, а то что-то непонятно. Вроде один и тот же код, только пути разные ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 11:28 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Говорю же - менял только запрос, вот он Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
, остальное всё то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 11:39 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
tanglir, у меня фокспро глючит кажется жестко.. я ваш код вставил он даже указанные поля не выводит в результат.. Заново создам проект и посмотрю сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 11:50 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Да уж когда вывожу одно поле из ds.usl то везде выдает F , а когда ваш код вписал нормально выдает. Да и фокс глючит пришлось заново проект создавать а иначе не выдавал. Теперь если я захожу оставить только те услуги для которых код МКБ не соответствует возрасту пациента я могу написать Код: sql 1.
или Код: sql 1.
и будет выводить только те которые соответствуют или не соответствуют да? checkmkb если False значит не соответствует. так ведь? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 13:17 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Обнаружил ошибку. Вот в таблице hediag код E343 соответствует пациентам у которых возраст < или = 1. У пациента с услугой у которого код Е343 возраст 6 и 15 лет. А в результате выдается эти услуги как те у которых код мкб не соответствует возрасту. А тут в чем загвоздка? дополнил код tanlir'a прописав после всего Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 13:23 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991фокс глючит пришлось заново проект создаватьЭто ваш код в каком-то месте глючит. Дима1991так ведь?да. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 13:24 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Ой )) или это я запутался)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 13:27 |
|
Определение возраста
|
|||
---|---|---|---|
#18+
Дима1991Обнаружил ошибку.Хватит уже, а? авторв таблице hediag код E343 соответствует пациентам у которых возраст < или = 1Это верно. авторУ пациента с услугой у которого код Е343 возраст 6 и 15 летНу пусть будет такой пациент. авторА в результате выдается эти услуги как те у которых код мкб не соответствует возрастуИ? если услуга соответствует возрасту менее одного года , то, ясен хрен, для человека с возрастом более одного года она будет признанна неподходящей... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2012, 13:27 |
|
|
start [/forum/topic.php?fid=41&msg=38027845&tid=1583157]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 163ms |
0 / 0 |