Я сталкиваюсь с действительно странной проблемой.
Этот запрос не работает:
SELECT
t1.status :: TEXT,
t1.total_amount :: float AS amount
FROM accounting.payment_in_records AS t1
UNION ALL
SELECT
t1.fees :: float AS amount,
'Processed' :: TEXT AS status
FROM accounting.payment_out_record_detail_groups AS t1
WHERE t1.fees > 0;
Ошибка:
[42804] ERROR: UNION types text and double precision cannot be matched Position: 147
Но этот запрос работает:
SELECT
t1.total_amount :: float AS amount,
t1.status :: TEXT
FROM accounting.payment_in_records AS t1
UNION ALL
SELECT
t1.fees :: float AS amount,
'Processed' :: TEXT AS status
FROM accounting.payment_out_record_detail_groups AS t1
WHERE t1.fees > 0;
То есть порядок столбцов должен быть одинаковым?