Я пытаюсь получить максимальное и минимальное значение одного столбца между определенными датами. Хотя я думаю, что запрос правильный, я получаю None.
Для подключения к базе данных я использую psycopg2.
Это запрос, который я хочу использовать:
querySentence = """
SELECT MIN (t."NOMBRE_CAMPO") , MAX(t."NOMBRE_CAMPO")
FROM {} t
JOIN "TABLA_B" tb
on t."NOMBRE_CAMPO" = tb."NOMBRE_CAMPO"
WHERE tb."Fecha" < %s AND tb."Fecha" >= %s;
"""
А вот как я его использую:
cur.execute(
sql.SQL(querySentence)
.format(sql.Identifier(table)),
[minDate, minDate])
result = cur.fetchone()
Для проверки запроса я использую следующий код:
print(cur.mogrify(sql.SQL(querySentence)
.format(sql.Identifier(table)),
[maxDate , minDate]))
, который возвращает действительное предложение SQL:
SELECT MIN (t."NOMBRE_CAMPO") , MAX(t."NOMBRE_CAMPO")
FROM "TABLA" t
JOIN "TABLA_B" tb
on t."NOMBRE_CAMPO" = tb."NOMBRE_CAMPO"
WHERE tb."Fecha" < '2021-01-01'::date AND tb."Fecha" >= '2020-12-01'::date;
Я попробовал это SQL-предложение непосредственно в базе данных и получил нужный результат, тогда как в своем коде я получил следующее значение для результата: (None, None)
Скорее всего, вы не подключаетесь к той же базе данных в коде Python, что и при запуске вручную.