Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать замену данных в поле? / 7 сообщений из 7, страница 1 из 1
22.07.2009, 10:46
    #36102302
silokhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать замену данных в поле?
Есть две таблицы:1) "Region_name", "Street_type", "Street_name", "Street_id"
2-ая с такими же полями. Проблема в том, что во второй таблице улицы("Street_name") не все совпадают с полем в 1-ой таблице. Нужно заменить строки поля "S_id" 2-ой таблицы на строки "S_id" 1-вой, с условием совпадения строк в полях "Region_name", "Street_type", "Street_name".
Премного буду благодарен.
...
Рейтинг: 0 / 0
22.07.2009, 11:04
    #36102356
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать замену данных в поле?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Create Cursor t1 ( Region_name v( 10 ), Street_type v( 10 ), Street_name v( 10 ), Street_id i)
Insert into t1 values( "Мск обл", "Ул", "Ленина",  1 )

Create Cursor t2 ( Region_name v( 10 ), Street_type v( 10 ), Street_name v( 10 ), Street_id i)
Insert into t2 values( "Мск обл", "Ул", "Виноградная",  1 )
Insert into t2 values( "ЦЦЦ обл", "Ул", "Абрикосовая",  2 )
Insert into t2 values( "Мск обл", "Ул", "Ленина",  3 )


Update t2 set Street_id=t1.Street_id ;
	from t1,t2 ;
	where   t1.Region_name=t2.Region_name ;
	    and t1.Street_type=t2.Street_type ;
	    and t1.Street_name=t2.Street_name 
	    
Select * from t2	    

но есть вопросы:
автор"S_id" кто такой?

авторулицы("Street_name") не все совпадают
как это может тогда соответствовать желанию
авторс условием совпадения строк в полях "Region_name", "Street_type", "Street_name" ?
...
Рейтинг: 0 / 0
22.07.2009, 11:05
    #36102357
Как сделать замену данных в поле?
silokhin,
Ну, например, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select table1
scan
select table2
replace table2.Street_id with table1.Street_id ;
for table2.Region_name = table1.region_name ;
     and table2.street_type = table1.streen_type ;
     and table2.street_name = table1.street_name
select table1
endscan
...
Рейтинг: 0 / 0
22.07.2009, 11:11
    #36102376
silokhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать замену данных в поле?
прошелмимо,

Дело в том, что во 2-ой таблице названия некоторых улиц с ошибками. И мне нужно добавить айди улицы из 1-ой таблицы во вторую при условии полного совпадения в строках R_name, S_type, S_name. А там, где не совпали имена улиц(из-за граматичейких ошибок) заменить S_id вручную(в новом окне)
...
Рейтинг: 0 / 0
22.07.2009, 12:42
    #36102680
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать замену данных в поле?
авторДело в том

чем Вам еще помочь?
пример апдейта и реплейса перебором показали.
пробуйте выполнять, произойдет замена по полному совпадению.
...
Рейтинг: 0 / 0
22.07.2009, 14:02
    #36102901
Как сделать замену данных в поле?
silokhin,
Есть такой алгоритм SOUNDEX (погуглите). Он позволяет уменьшить зависимость от ошибок ввода (буква "а" заменена на "о", "б" на "п" и т.д.) при сравнении слова с образцом. К сожалению, в явном виде (в виде функции) он реализован только для английского языка. Для русского языка - надо адаптировать алгоритм самому.
...
Рейтинг: 0 / 0
22.07.2009, 15:08
    #36103153
homik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать замену данных в поле?
А еще погуглите на "Алгоритм Левенштейна".
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как сделать замену данных в поле? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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