Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Вычисляемое поле ADOQuery   Найти похожие ветки 

 
Tornado ©   (2006-10-10 10:37) [0]

Есть у меня ADOQuery который выбирает данные из dbf-файла. Есть два вычисляемых поля. Мне необходимо сделать еще одну выборку из результатов первого запроса. Как осуществить?


 
Sergey13 ©   (2006-10-10 10:40) [1]

Модифицировать запрос - сделать первичный запрос подзапросом или просто наложить дополнитеотные условия.


 
Tornado ©   (2006-10-10 10:57) [2]

Sergey13 ©   (10.10.06 10:40) [1]

Если можно поподробнее. Надо еще один ADOQuery? А как же вычисляемые поля которые присутствуют в ADOQuery1? И обрабатываются в OnCalcFields


 
Sergey13 ©   (2006-10-10 11:02) [3]

> [2] Tornado ©   (10.10.06 10:57)
> Если можно поподробнее.
Ты бы и спрашивал поподробнее. Может тебе просто отфильтровать результат надо?


 
sniknik ©   (2006-10-10 11:03) [4]

> А как же вычисляемые поля которые присутствуют в ADOQuery1
забудь про них, все что есть на клиенте серверу недоступно, можно передать, но формирование и передача с клиента на сервер длинных списков (/всего рекордсета) будет медленнее чем вычисление их на месте. (т.е. см. [1] запрос + дополнительный подзапрос, ну и + вычисления того же что "в OnCalcFields")


 
Tornado ©   (2006-10-10 12:35) [5]

Помогите составить запрос. Исходные данные: есть две таблицы dbf, kadr.dbf и kart.dbf. В первой таблице нужные поля: KADR.FIO, KART.POL, во второй: KART.DROJD, KART.SRCP.

FIO -фамилия, POL - пол, DROJD - дата рождения, SRCP - дата принятия на работу, ну и поле TAB в обоих таблицах это табельный номер.

Связаны по полю TAB, присутствует в обоих таблицах: SELECT KADR.FIO, KART.POL, KART.DROJD, KART.SRCP FROM KADR.DBF, KART.DBF WHERE KADR.TAB=KART.TAB
Это запрос просто на выборку из двух таблиц. Дополнительно надо сделать запрос таким образом чтобы были выбраны: лица мужского пола которым больше 50 лет и стаж работы не менее 5 лет, лица женского пола которым больше 45 лет и стаж работы не менее 5 лет

Убей не соображу как сделать...


 
Sergey13 ©   (2006-10-10 13:03) [6]

> [5] Tornado ©   (10.10.06 12:35)

Первое и самое простое что приходит на ум - динамически формировать уловие отбора (секция where). Можно попробовать сделать это с параметрами. Типа
and ((:flag_sex=1 and sex="M") or (:flag_sex=0))
и потом просто устанавливать значения параметрам. Для серверов БД второй вариант предпочтительнее, для DBF-ки пофиг.


 
Виталий Панасенко   (2006-10-10 16:09) [7]

а

select * from where условие для женщин
union all
select * from where условие для мужчин

не подходит


 
Tornado ©   (2006-10-10 16:25) [8]

Виталий Панасенко   (10.10.06 16:09) [7]

впринципе наверно подходит, вот условие отбора не знаю как написать...


 
Виталий Панасенко   (2006-10-10 17:33) [9]

where (Текущая_Дата - Дата_Рождения)/365,25>50 - для мужчин
where (Текущая_Дата - Дата_Рождения)/365,25>45 - для женщин

аналогично со стажем


 
Tornado ©   (2006-10-11 08:31) [10]

Виталий Панасенко   (10.10.06 17:33) [9]

Спасибо, придется использовать параметры?


 
Виталий Панасенко   (2006-10-11 09:15) [11]


> Tornado ©   (11.10.06 08:31) [10]

Я так и не понял, кто из нас пишет эту программу(или что там еще) ? Ты или я? Тебе решать, параметры или строить динамически текст запроса...


 
Tornado ©   (2006-10-11 10:09) [12]

Виталий Панасенко   (11.10.06 09:15) [11]

:))) Спасибо!


 
Johnmen ©   (2006-10-11 10:27) [13]


> Виталий Панасенко   (10.10.06 17:33) [9]
> (Текущая_Дата - Дата_Рождения)/365,25


Так делать, наверное, не стОит...:)


 
Tornado ©   (2006-10-11 11:31) [14]

Johnmen ©   (11.10.06 10:27) [13]

почему?


 
Johnmen ©   (2006-10-11 11:56) [15]


> Tornado ©   (11.10.06 11:31) [14]
> почему?


Потому, что в году не 365.25 дней :)
Для некоторых дат результат будет неверным...


 
Виталий Панасенко   (2006-10-11 15:55) [16]

Астрономических дней как раз 365,25. Потому и високосный раз в 4 года - 0,25+0,25+0,25+0,25 (почти)


 
Johnmen ©   (2006-10-11 16:53) [17]

А 1900 год был високосным? А 2000-й?
:)



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
2-1164547988
Мишок
2006-11-26 16:33
2006.12.17
ярлыки


2-1165057070
Kotik
2006-12-02 13:57
2006.12.17
Работа со структурами


2-1164961290
KyRo
2006-12-01 11:21
2006.12.17
Подскажите какой выбрать шрифт


1-1162460119
NeyroSpace
2006-11-02 12:35
2006.12.17
Как узнать что компьютер простаивает n минут?


2-1164651925
Змей
2006-11-27 21:25
2006.12.17
webbrowser. анимация вкл.выкл