![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 35
|
![]()
Добрый день!
Имеется две таблицы tb_new (из Access), tb_old (из PostgreSQL). Обе таблицы имеют одинаковые поля: DSE(строка), SE(строка), KSE( в tb_new - числовой[двойное с плавающей точкой], в tb_old - numeric[12,6]). Необходимо сравнить значения этих таблиц и результат занести в новую таблицу. Код:
Код:
0,03(из tb_old) <> 0,030000(из tb_new). Посоветуйте как поступить в этом случае |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
с вещественным числами далёко не всё так просто и очевидно.
Неочевидные особенности вещественных чисел цитирую пример из этой статьи: Цитата:
через locate ищите совпадение других полей, а потом перебирайте найденные значения, в цикле вычитайте из одной величины другую и сравнивайте модуль разности с очень малой величиной (например, 1E-6 ) if abs(datam.tb_new.FieldByName('KSE') .AsFloat - datam.qr_detalseDSE.FieldByName('KS E').AsFloat) < 0.000001 then СОВПАЛО p.s. а вообще-то, зачем сравнивать две таблицы?! может проще произвести импорт данных в одну СУБД и потом выполнить один SQL запрос, который выдаст несовпадающие данные.. |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.05.2010
Сообщений: 35
|
![]()
Serge_Bliznykov, большое спасибо за советы, статья многое разъяснила.
Не знаю на сколько это правильно, но я делал следующим образом: при сравнении полей KSE я записывал значения в переменную типа real, потом из этой переменной в переменную типа string, т.е. сравнивал две строковые переменные)) (результат вроде как верный). В любом случае попробую ваш вариант с модулем разности, чтобы убедиться в правильности сравнения. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одновременное удаление записей в разных таблицах | Lkhasa | БД в Delphi | 9 | 16.12.2010 13:21 |
Запрос на сравнение записей двух таблиц. | papos | SQL, базы данных | 0 | 25.09.2010 12:31 |
Сравнение и замена значений в двух таблицах Excel | shalinoleg | Microsoft Office Excel | 2 | 10.06.2010 09:53 |
update или исправление записей в таблицах. | Roof | БД в Delphi | 4 | 15.08.2008 15:35 |
Множественное перемещение в двух таблицах | Arteom | БД в Delphi | 7 | 16.07.2008 16:59 |