altocompta/include/sql/patch/upgrade186.sql
2023-07-05 17:48:47 +02:00

28 lines
No EOL
947 B
PL/PgSQL

begin;
-- more precision for currency conversion
DROP VIEW public.v_currency_last_value;
ALTER TABLE public.currency_history ALTER COLUMN ch_value TYPE numeric(20, 8) USING ch_value::numeric;
CREATE OR REPLACE VIEW public.v_currency_last_value
AS WITH recent_rate AS (
SELECT currency_history.currency_id,
max(currency_history.ch_from) AS rc_from
FROM currency_history
GROUP BY currency_history.currency_id
)
SELECT cr1.id AS currency_id,
cr1.cr_name,
cr1.cr_code_iso,
ch1.id AS currency_history_id,
ch1.ch_value,
to_char(recent_rate.rc_from::timestamp with time zone, 'DD.MM.YYYY'::text) AS str_from
FROM currency cr1
JOIN recent_rate ON recent_rate.currency_id = cr1.id
JOIN currency_history ch1 ON recent_rate.currency_id = ch1.currency_id AND recent_rate.rc_from = ch1.ch_from;
insert into version (val,v_description) values (187,'Currency : more decimals');
commit;