Страница 1 из 1
Как перебросить часть данных по зарплате
Добавлено: 03 июн 2010, 12:18
maikl
Есть две базы, одна из чих чистая. Стоит задача из одной базы перебросить часть сотрудников, со всеми анкетными и т.д. данными, т.е. карточку сотрудника. У кого нибудь есть такой опыт ?
Добавлено: 03 июн 2010, 12:42
s2176
Мы когда-то, лет 5 назад, делали такое, но с помощью интерфейса.
В новую базу подкладывали все таблицы с персональной информацией из старой базы (persons, адрес, паспорт и пр, точно не помню уже). Делали xls-файл со списком сотрудников, которые переходят в новую организацию. Потом интерфесом в соответствии с этим списком правили файл persons, меняли поле filialno (можно и другое), в нем ставили, например "5", тем, кто останется работать в новой организации. Затем остальных удаляли запросом. Из остальных таблиц с персональной информаций ненужные записи также удалили запросом.
Добавлено: 03 июн 2010, 13:07
edward_K
если база небольшая, то этот вариант оптимальней. - лучше вы забудете чего то удалить, чем забудете перенести.
Если же очень большая то мож это вам поможет
Код: Выделить всё
select lschet.* where (( 89 == lschet.tabn )) to dbf c:\1\lschet ;
select persons.* where (( 89 == lschet.tabn and lschet.tperson == persons.nrec )) to dbf c:\1\persons;
select doplata.* where (( 89 == doplata.tabn )) to dbf c:\1\doplata ;
select xarpred.* to dbf c:\1\xarpred ;
select perech.* to dbf c:\1\perech ;
select klvidopl.* to dbf c:\1\klvidopl ;
select KLPEROPL.* to dbf c:\1\KLPEROPL ;
select KLalg.* to dbf c:\1\KLalg ;
select KLrejim.* to dbf c:\1\KLrejim ;
select child.* where (( 89 == child.tabn )) to dbf c:\1\child ;
select shtraf.* where (( 89 == shtraf.tabn )) to dbf c:\1\shtraf ;
select PEREXOD.* where (( 89== perexod.tabn )) to dbf c:\1\perexod ;
select CHILD.* where (( 89 == child.tabn )) to dbf c:\1\child ;
select CHILDone.* where (( 89 == childone.tabn )) to dbf c:\1\childone ;
select UCHRABVR.* where (( 89 == uchrabvr.TABN )) to dbf c:\1\uchrabvr ;
select SUMVIDOP.* where (( 89 == TABN )) to dbf c:\1\sumvidop ;
select SUMVIDUD.* where (( 89 == TABN )) to dbf c:\1\sumvidud ;
select NACHISL.* where (( 89 == TABN )) to dbf c:\1\nachisl ;
select UDER.* where (( 89 == tabn )) to dbf c:\1\uder ;
select PEREVOD.* where (( 89 == tabn )) to dbf c:\1\perevod ;
select PRMONTH.* where (( 89 == tabn )) to dbf c:\1\prmonth ;
select CURMONTH.* where (( 89 == TABN )) to dbf c:\1\CURMONTH ;
select BLISNET.* where (( 89 == TABN )) to dbf c:\1\blisnet ;
select OTPUSK.* where (( 89 == TABN )) to dbf c:\1\otpusk ;
select arotpusk.* where (( 89 == otpusk.tabn and otpusk.nrec /== arotpusk.cotpusk )) to dbf c:\1\arotpusk ;
select factotpusk.* where ((89 == otpusk.tabn and otpusk.CFACTOTPUSK == factotpusk.nrec )) to dbf c:\1\fotpusk ;
select PRVIDOPL.* where (( 89 == TABN(noindex) )) to dbf c:\1\prvidopl ;
select ARHPEREX.* where (( 89 == TABN )) to dbf c:\1\arhperex ;
select PEREVODTEK.* where (( 89 == TABN )) to dbf c:\1\perevodtek ;
select SYS_NAR.* to dbf c:\1\sys_nar ;
select pRNARYAD.* where (( 89 == TABN )) to dbf c:\1\prnaryad ;
select DOPNAP.* where (( 89 == TABN )) to dbf c:\1\dopnap ;
select DOPNAL.* where (( 89 == TABN )) to dbf c:\1\dopnal ;
select DOGARX.* where (( 89 == TABN )) to dbf c:\1\DOGARX ;
select BRWORK.* where (( 89 == TABN(noindex) )) to dbf c:\1\BRWORK ;
select TABHELP.* where (( 89 == TABN(noindex) )) to dbf c:\1\TABHELP ;
select NENACH.* where (( 89 == TABN )) to dbf c:\1\NENACH ;
select LSTAB.* where (( 89 == TABN )) to dbf c:\1\LSTAB ;
select lstabmsk.* where (( 89 ==lstab.tabn
and lstab.nrec /== lstabmsk.clstab )) to dbf c:\1\lstabmsk ;
select VARIANCE.* where (( 89==lstab.tabn
and lstab.nrec /== VARIANCE.clstab )) to dbf c:\1\VARIANCE ;
select ARXTAR.* where (( 89 == TABN )) to dbf c:\1\ARXTAR ;
select SPPLBAN.* where (( 89 == TABN(noindex) )) to dbf c:\1\SPPLBAN ;
select SUMULTEC.* where (( 89 == TABN )) to dbf c:\1\SUMULTEC ;
select SUMULPRO.* where (( 89 == TABN )) to dbf c:\1\SUMULPRO ;
select SUMULBUD.* where (( 89 == TABN )) to dbf c:\1\SUMULBUD ;
select SUMUPTEC.* where (( 89 == TABN )) to dbf c:\1\SUMUPTEC ;
select SUMUPPRO.* where (( 89 == TABN )) to dbf c:\1\SUMUPPRO ;
select SUMUPBUD.* where (( 89 == TABN )) to dbf c:\1\SUMUPBUD ;
select DOPNAL2.* where (( 89 == TABN )) to dbf c:\1\DOPNAL2 ;
select NALPERS.* where (( 89 == TABN(noindex) )) to dbf c:\1\NALPERS ;
select STORNTAB.* where (( 89 == TABN(noindex) )) to dbf c:\1\STORNTAB ;
select OTPDOP.* where (( 89 == TABN(noindex) )) to dbf c:\1\OTPDOP ;
select SUMUPSOC.* where (( 89 == TABN(noindex) )) to dbf c:\1\SUMUPSOC ;
select SUMULSOC.* where (( 89 == TABN(noindex) )) to dbf c:\1\SUMULSOC ;
Добавлено: 03 июн 2010, 16:24
maikl
Спасибо, но нас больше интересуют даные из Персонала, из картотеки сотрудников. Как из проще перебросить ?
Добавлено: 03 июн 2010, 16:48
edward_K
все примерно как lstabmsk, Только в в подчинененых person или cpersons. Можно по x$fields +x$files отобрать(и сгенерить) - у меня нет готового. Справочник в 90% catalogs, ну еще sterr, klrejim , klotpus, klblisnet - проще чем зарплату тянуть.