query = ("SELECT {} FROM raschett WHERE Наименование = ANY(%s) AND Месяц = ANY(%s) ;"
.format(",".join(["\"{}\"".format(c) for c in columns])))
crosstab(select EXTRACT(YEAR FROM time) AS year, EXTRACT(month FROM time) AS month,SUM(cost) as sum_cost
FROM
dep
INNER JOIN prod ON prod.id = dep.id
INNER JOIN sales ON prod.id = sales.prod_id
WHERE time >= '2018-01-01 00:00:00'
AND city = 'town1'
GROUP BY year, month
ORDER BY year, month
)as itog_table(year int,1 int,2 int, 3 int,4 int,5 int,6 int,7 int,8 int,9 int,10 int,11 int,12 int);
ERROR: функция year(timestamp without time zone) не существует
LINE 1: select YEAR(time)
^
HINT: Функция с данными именем и типами аргументов не найдена. Возможно, вам следует добавить явные приведения типов.
ОШИБКА: функция year(timestamp without time zone) не существует
query = ("SELECT {} FROM fact_bp WHERE year = ANY(%s) AND indicators = ANY(%s) AND station_name = ANY(%s);"
.format(",".join(["\"{}\"".format(c) for c in columns])))
rows = execute_query(query, (selected_years, selected_indicators, selected_stations))
def index():
# соединение с БД
with psycopg2.connect(**params) as conn:
# создание объекта курсора для запуска команд PostgreSQL в базе данных
cur = conn.cursor()
cur.execute("SELECT * FROM fact_table;")
rows = cur.fetchall()
cur.close()
if request.method == "POST":
with psycopg2.connect(**params) as conn:
# создание объекта курсора для запуска команд PostgreSQL в базе данных
cur = conn.cursor()
cur.execute("SELECT {} FROM fact_table WHERE year = ANY(%s) AND indicators = ANY(%s) AND station_name = ANY(%s);"
.format(",".join(["\"{}\"".format(c) for c in columns])),(selected_years, selected_indicators, selected_stations))
# Для получения доступа к сформированной выборке используем cur.fetchall()
rows = cur.fetchall()
cur.close()