powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Money to numeric
8 сообщений из 8, страница 1 из 1
Money to numeric
    #35596531
Ziks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

у меня следующая проблема:
Пытаюсь найти сумму SUM(babki)
babki тип money
Выпадает минусовая сумма, хотя записей с минусовыми значениями babki нет.
Погуглил, понял что проблема в типе money.
Но конвертнуть babki в numeric не получается.
может кто то сталкивался с такой проблемой, как решить?
заранее спасибо!
...
Рейтинг: 0 / 0
Money to numeric
    #35596600
sourcer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZiksЗдравствуйте!

у меня следующая проблема:
Пытаюсь найти сумму SUM(babki)
babki тип money
Выпадает минусовая сумма, хотя записей с минусовыми значениями babki нет.
Погуглил, понял что проблема в типе money.
Но конвертнуть babki в numeric не получается.
может кто то сталкивался с такой проблемой, как решить?
заранее спасибо!


Какая версия постгреса? У меня на 8.3.3 все работет.
Может у вас в таблице встречаются разные валюты и в этом проблема?
...
Рейтинг: 0 / 0
Money to numeric
    #35596616
valuez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй сделать тип

Код: plaintext
create type t_babki as numeric ( 5 , 2 );

и при создании таблицы просто указать тип

Код: plaintext
1.
2.
3.
4.
create table T1 (
id integer not null primary key,
babki t_babki not null
);
...
Рейтинг: 0 / 0
Money to numeric
    #35597495
Ziks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sourcer Какая версия постгреса?
подскажите плыз как посмотреть?

sourcerМожет у вас в таблице встречаются разные валюты и в этом проблема?
Нет валюта одна.
Минусовая сумма выпадает, потому что сумма выходит за рамки 21 млн.

valuez попробуй сделать тип
спасибо. Но таблица очень большая, больше 20 млн. Можно что нибудь придумать, чтоб не создавать ее заново?
...
Рейтинг: 0 / 0
Money to numeric
    #35597593
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короткая попытка
Код: plaintext
1.
  alter table t2 alter column babki type numeric( 12 , 2 ) using regexp_replace( babki::text, '[^\\d.]','', 'g')::numeric;
Это сделает апдейт всех строк - так что займёт время.

Хотя, в 8.3 заявлено, что тип money имеет длину 8 байт и, соответственно, диапазон от -92233720368547758.08 до +92233720368547758.07 . Может просто апгрейд?
...
Рейтинг: 0 / 0
Money to numeric
    #35597763
Ziks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пасиб.

гугл подсказал такое:
translate(textin(cash_out(babki)), '$,','')::numeric

вот теперь новая проблема, я добавил еще одно поле babki_new

update lave
set lave.babki_new = translate(textin(cash_out(lave.babki)), '$,','')::numeric

не катит.
ERROR: column "lave" of relation "lave" does not exist at character 22

Возможно в PostgreSQL нельзя апдейтить таблицу ссылаясь на саму себя?
...
Рейтинг: 0 / 0
Money to numeric
    #35597812
V.V.L.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо без love. (update может изменить только одну таблицу):

update lave
set babki_new = translate(textin(cash_out(babki)), '$,','')::numeric
...
Рейтинг: 0 / 0
Money to numeric
    #35597824
Ziks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ухты!! Внатуре, Как же я не додумался

пасиб...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Money to numeric
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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