столбец "Statement_Date" имеет тип даты, но выражение имеет тип целое число - PullRequest
15 голосов
/ 09 февраля 2012

Рассмотрим следующий запрос:

INSERT INTO     statement_line_items
SELECT      count(*)::integer as clicks, sum(amount_cents)::integer as amount_cents, imps.user_id, imps.created_at::date as statement_date
FROM        impression_events imps
INNER JOIN  transactions t ON t.event_id = imps.id
  AND       t.event_type = 'ImpressionEvent'
  AND       amount_cents >= 0
WHERE       imps.created_at >= (now() - interval '8 days')::date
  AND       imps.created_at < (now() - interval '7 day')::date
  AND       imps.clicked = true
GROUP BY    imps.user_id, imps.created_at::date;

Это возвращается:

ERROR:  column "statement_date" is of type date but expression is of type integer
LINE 2: ...icks, sum(amount_cents)::integer as amount_cents, imps.user_...
                                                             ^
HINT:  You will need to rewrite or cast the expression.

********** Error **********

ERROR: column "statement_date" is of type date but expression is of type integer
SQL state: 42804
Hint: You will need to rewrite or cast the expression.
Character: 117

Моя структура таблицы для Statement_line_items:

"id";              "integer"
"user_id";         "integer"
"statement_date";  "date"
"description";     "character varying(255)"
"clicks";          "integer"
"amount_cents";    "integer"
"created_at";      "timestamp without time zone"
"updated_at";      "timestamp without time zone"

1 Ответ

13 голосов
/ 09 февраля 2012

Вы помещаете imps.userid в свой столбец statement_date.Это должно завершиться неудачей.

count(*)::integer as clicks   goes into id
sum(amount_cents)::integer as amount_cents   goes into userid
imps.user_id   goes into statement_date

Чтобы указать вводимый вами порядок, вы можете сделать это:

INSERT INTO statement_line_items (col1, col2, ...)
values (select data_for_col1, data_for_col2, ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...