Возвращенный тип bigint не соответствует ожидаемому целому числу в столбце 3 - PullRequest
0 голосов
/ 22 ноября 2018

Ниже приведена структура моей таблицы sold_quantity (файл миграции)

alter table public.invoice_item add column sold_quantity int4 default 1;

Ниже приведена функция выполнения

CREATE OR REPLACE FUNCTION sold_quantity()
RETURNS TABLE(
 invoiceid BIGINT,
 itemid BIGINT,
 sum_sold_quantity INT)
AS $$
BEGIN
 RETURN QUERY SELECT
 invoice_id as invoiceid, item_id as itemid, sum(sold_quantity) as
 sum_sold_quantity
 FROM
 invoice_item
 WHERE
 status='sold'
 GROUP BY
 invoice_id, item_id;
END; $$

Что не так в моем коде, пожалуйста, помогите мне решитьэта ошибка

Возвращенный тип bigint не соответствует ожидаемому целому числу в столбце 3

1 Ответ

0 голосов
/ 22 ноября 2018

sum() возвращает bigint, не обязательно тип столбца, который суммируется.

Если вы на 100% уверены, что ваша сумма никогда не превышает диапазон для целого числа, это можно исправить с помощью приведения в вашем запросе: sum(sold_quantity)::int as sum_sold_quantity

Но было бы лучше настроитьподпись функции:

CREATE OR REPLACE FUNCTION sold_quantity()
RETURNS TABLE(
 invoiceid BIGINT,
 itemid BIGINT,
 sum_sold_quantity BIGINT)
...