суммы возвращают String, только с postgresql
Я перемещаю базу данных из mysql в postgres. Сама миграция была в порядке, следуя документации postgres.
Прямо сейчас я исправляю наши конкретные запросы mysql.
В какой-то момент у нас сейчас что-то вроде этого:
select(%(
SUM(CASE WHEN income THEN value ELSE 0 END) AS rents,
SUM(CASE WHEN not income THEN value ELSE 0 END) AS expenses
))
В MySQL это былоsum(if(incomes, value, 0))
и т. д., и он работал как ожидалось.
С PG он возвращает строку вместо числа.
Я уже проверил базу данных, и тип данных правильный.
Что я могу сделать, кроме актерского составаto_d
или жеto_f
?
РЕДАКТИРОВАТЬ: полный запрос:
SELECT
SUM(CASE WHEN income THEN value ELSE 0 END) AS rents,
SUM(CASE WHEN not income THEN value ELSE 0 END) AS expenses
FROM "transactions"
WHERE "transactions"."type" IN ('Transaction')
AND "transactions"."user_id" = 1
AND "transactions"."paid" = 't'
AND (transactions.date between '2013-09-01' and '2013-09-30')
LIMIT 1