powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение возраста
25 сообщений из 187, страница 7 из 8
Определение возраста
    #38030189
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, У меня создается курсор

create cursor pacient ( ;
****
****
dr T;
*** )


вместо dr T так что ли писать cast(поле as date) ?? я имел ввиду можно ли сделать при создании тип поля таким какой нужен бл* вычисления
...
Рейтинг: 0 / 0
Определение возраста
    #38030201
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

D, бл*
...
Рейтинг: 0 / 0
Определение возраста
    #38030246
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540, о вот сейчас получилось, в курсор ааа выводит возрасты точно такие же как и у меня были, но мне сказали что в моем случае будет плюс минус 1 год. Ваш код все таки и дни и месяца считает и правильнее сформирован. Теперь мне бы хотелось в pacient.agep занести эти возрасты только что-то не получается. Посмотрите мой код, я из usl добавил некоторые поля тоже

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT full_years(pacient.dr, usl.date_in) AS agep, usl.spolis,usl.npolis ;  
FROM  pacient INNER JOIN usl ;
ON  ALLT(pacient.spolis)+ALLT(pacient.npolis) == ALLT(usl.spolis)+ALLT(usl.npolis) ;
INTO CURSOR years

SELECT years
BROWSE

UPDATE pacient SET pacient.agep=years.agep WHERE pacient.spolis=years.spolis AND pacient.npolis=years.npolis
SELECT pacient
BROWSE 
...
Рейтинг: 0 / 0
Определение возраста
    #38030278
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991
Код: sql
1.
UPDATE pacient SET pacient.agep=years.agep WHERE ALLT(pacient.spolis)+ALLT(pacient.npolis) == ALLT(years.spolis)+ALLT(years.npolis)
...
Рейтинг: 0 / 0
Определение возраста
    #38030305
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540, он все равно в первой записи делает 37 т.е. возраст первый возраст в курсоре ааа, а потом везде нули.. и в вашем случае и в моем случае так
...
Рейтинг: 0 / 0
Определение возраста
    #38030630
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

Блин, опять я на те же грабли... 12676279

Код: plsql
1.
2.
3.
4.
5.
SELECT years
GO TOP
SCAN
UPDATE pacient SET pacient.agep=years.agep WHERE ALLT(pacient.spolis)+ALLT(pacient.npolis) == ALLT(years.spolis)+ALLT(years.npolis)
ENDSCAN
...
Рейтинг: 0 / 0
Определение возраста
    #38030644
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540, мда уж, а я вначале писал scan и go top не написал. Спасибо.
...
Рейтинг: 0 / 0
Определение возраста
    #38034524
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно 1 вопрос по поводу выборки... Я делаю сначала выборку из услуг в один курсор uslugi, затем выборку из случаев во второй курсор sluchai и потом из этих курсоров только нужные поля вывожу в третий курсор otch. А там у меня по два раза повторяются записи т.к. они содержались в первом и во втором курсоре. Можно ли сделать так чтобы в результирующем курсоре OTCH не повторялись записи. DISTINCT не помогает

Код: sql
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.
SELECT  p.spolis as Seriya,p.npolis as NPolisa,p.fam as Surname,p.im as Name,p.ot as Otch,p.w as Pol,h.code,p.agep as paAge,h.compr,h.age,u.date_in as Dateu,u.code_usl as KodUsl,u.ds as KodMKB,u.code_md as KodDoctor;
   ,cast(icase(alltrim(h.compr)=='>',p.agep>h.age;
   ,alltrim(h.compr)=='<=',p.agep<=h.age;
   ,alltrim(h.compr)=='<',p.agep<h.age;
   ,alltrim(h.compr)=='>=',p.agep>=h.age;
   ,.null.;
  ) as logical;
 ) as CheckMKB;
from pacient p ;
join usl u on ALLTRIM(p.spolis)==ALLTRIM(u.spolis) and ALLTRIM(p.npolis)==ALLTRIM(u.npolis);
left join hediag h on chrtran(alltrim(u.ds),'.','')==alltrim(h.code) ;
HAVING checkmkb=.f. INTO CURSOR uslugi

SELECT  p.spolis,p.npolis,h.code,p.agep,h.compr,h.age,sl.ds0,sl.nhistory as NTalona;
   ,cast(icase(alltrim(h.compr)=='>',p.agep>h.age;
   ,alltrim(h.compr)=='<=',p.agep<=h.age;
   ,alltrim(h.compr)=='<',p.agep<h.age;
   ,alltrim(h.compr)=='>=',p.agep>=h.age;
   ,.null.;
  ) as logical;
 ) as CheckMKB;
from pacient p ;
join sluch sl on ALLTRIM(p.spolis)==ALLTRIM(sl.spolis) and ALLTRIM(p.npolis)==ALLTRIM(sl.npolis);
left join hediag h on chrtran(alltrim(sl.ds0),'.','')==alltrim(h.code) ;
HAVING checkmkb=.f. INTO CURSOR sluchai

SELECT distinct uslugi.seriya,uslugi.npolisa,uslugi.surname,uslugi.Name,uslugi.Otch,uslugi.paAge,uslugi.Pol,uslugi.Dateu,uslugi.KodUsl,uslugi.KodMKB,uslugi.KodDoctor,uslugi.compr,uslugi.age,sluchai.NTalona ;
FROM uslugi,sluchai INTO CURSOR otch
SELECT otch
brow
...
Рейтинг: 0 / 0
Определение возраста
    #38034543
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991чтобы в результирующем курсоре OTCH не повторялись записи. DISTINCT не помогаетЕсли дистинкт не помогает, значит, какие-то поля в этих "одинаковых" записях всё-таки не совпадают.
...
Рейтинг: 0 / 0
Определение возраста
    #38034548
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991
Код: sql
1.
FROM uslugi,sluchai

ОМФГ
это же у вас полный декарт
срочно читать про селект до посинения!
...
Рейтинг: 0 / 0
Определение возраста
    #38034549
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, поля полностью идентичны
...
Рейтинг: 0 / 0
Определение возраста
    #38034553
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что значит декарт? Я такой сленг не понимаю )) скажите пожалуйста по русски
...
Рейтинг: 0 / 0
Определение возраста
    #38034564
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

полное декартово произведение таблиц uslugi и sluchai

за разъяснениями - на куры реляционной алгебры :)
...
Рейтинг: 0 / 0
Определение возраста
    #38034568
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, аа.. понял, а как тогда записать чтобы выборка происходила без повторяющихся записей
...
Рейтинг: 0 / 0
Определение возраста
    #38034571
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

я предполагаю, что вам нужен был union all.
...
Рейтинг: 0 / 0
Определение возраста
    #38034573
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или даже просто union.
...
Рейтинг: 0 / 0
Определение возраста
    #38034602
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то не получается: смотрите

Код: sql
1.
2.
3.
4.
5.
(SELECT distinct uslugi.seriya,uslugi.npolisa,uslugi.surname,uslugi.Name,uslugi.Otch,uslugi.paAge,uslugi.Pol,uslugi.Dateu,uslugi.KodUsl,uslugi.KodMKB,uslugi.KodDoctor,uslugi.compr,uslugi.age FROM uslugi) ;
union 
(SELECT sluchai.NTalona FROM sluchai) INTO CURSOR otch
SELECT otch
brow



пишет
Код: sql
1.
Statement is invalid.
...
Рейтинг: 0 / 0
Определение возраста
    #38035131
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991что-то не получается: смотрите

Код: sql
1.
2.
3.
4.
5.
(SELECT distinct uslugi.seriya,uslugi.npolisa,uslugi.surname,uslugi.Name,uslugi.Otch,uslugi.paAge,uslugi.Pol,uslugi.Dateu,uslugi.KodUsl,uslugi.KodMKB,uslugi.KodDoctor,uslugi.compr,uslugi.age FROM uslugi) ;
union 
(SELECT sluchai.NTalona FROM sluchai) INTO CURSOR otch
SELECT otch
brow



пишет
Код: sql
1.
Statement is invalid.



А токи с запятой кто будет ставить?
...
Рейтинг: 0 / 0
Определение возраста
    #38035252
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNGА токи с запятой кто будет ставить?да и скобки тут не нужны...
...
Рейтинг: 0 / 0
Определение возраста
    #38035295
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

две недели уже топик пишешь, бросай ты эту херь, не твое это, нафиг тебе эта казуистика непонятная?
...
Рейтинг: 0 / 0
Определение возраста
    #38035391
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точки с запятыми я ставлю и так. а вот попробовал без скобок другая ошибка появилась

Код: sql
1.
SELECTs are not UNION compatible. Number of fields do not match.



на счет того что не мое.. я только учить начал его.. в университете поверхностно прошли, сейчас заново изучаю
...
Рейтинг: 0 / 0
Определение возраста
    #38035585
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Определение возраста
    #38035595
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, я знаю что поля не совпадают у таблиц, поэтому спросил вначале есть ли какой-нибудь способ не выводить повторяющиеся записи? юнион тоже не помогает судя по всему
...
Рейтинг: 0 / 0
Определение возраста
    #38035628
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё, я пас.
...
Рейтинг: 0 / 0
Определение возраста
    #38035630
Дима1991,
Нужно связать два курсора. Либо через inner join
select ... from uslugi inner join sluchai on uslugi.<field1> = sluchai.<field2> and uslugi.<field2>=sluchai.<fieldN> where...,
либо, по старинке:
select ... from uslugi,sluchai where uslugi.<field1> = sluchai.<field2> and uslugi.<field2>=sluchai.<fieldN> and...
...
Рейтинг: 0 / 0
25 сообщений из 187, страница 7 из 8
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение возраста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]