Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизВычисляемое поле 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c