2016-08-16 7 views
1

У меня есть широта, хранящаяся как числовая в таблице (пример 18.1659). Я использую оператор слияния для переноса этих данных в другую таблицу. Все работы, кроме данных, вводятся в новую таблицу только как «18». Оба поля являются числовыми, которые, как я думал, были точными в Firebird. Как я могу обойти это и ввести выбранные данные в новые поля. Вот sql, который я использовал.Получение числовой точности в заявлении о слиянии в Firebird

merge into notary n 
    using (select lat from Zip_codes where zipcode = n.zip) z 
    on (n.zip = z.zipcode) 
    when matched then update set lat = z.lat 

Я пробовал использовать отливку как двойную точность, но это тоже не сработало. Если бы я понял, почему это произошло, я, вероятно, смогу найти решение, но я даже не знаю, почему. Благодаря

диалекте 3 ТАБЛИЦА: Нотариальные ПОЛЯ: LAT NUMERIC (18,0) СПГ NUMERIC (18,0)

ТАБЛИЦА: ZIP_CODES ПОЛЯ: LAT NUMERIC (18,5) СПГ NUMERIC (18,5)

+0

добавьте в тему диалект SQL вашей базы данных и декларации (схемы) обеих таблиц, которые вы используете –

+0

лично, я бы просто сохранил все широты как Int64 после их умножения на тысячи :-) –

+0

тоже нет смысла там используя производные таблицы, которые пропускают всю идею команды MERGE. http://firebirdsql.su/doku.php?id=merge Просто пойдите с 'merge to нотариус n, используя lat z на n.zip = z.zipcode ......' –

ответ

2

Когда я редактировал свой вопрос, я ответил на свой вопрос. Я не понимал, что мой номер в нотариальной таблице установлен в (18,0). Как только я сменил их на (18,5), все сработало так, как должно.

+0

все еще лучше отключите команду MERGE , нет смысла замедлять работу сервера со многими однострочными запросами вместо одного –

+0

Спасибо, мне нужно было только один раз использовать его для передачи некоторых данных на моем локальном компьютере. –

+1

На самом деле то, что я использовал, было «слить в нотариус n с помощью zip_codes z на n.zip = z.zipcode при сопоставлении затем набор обновлений n.lat = z.lat ' –

 Смежные вопросы

  • Нет связанных вопросов^_^