powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Диапазон дат
6 сообщений из 6, страница 1 из 1
Диапазон дат
    #38765705
Бака
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, возникла у меня следующая потребность.
Есть у меня табличка "close_day" в ней содержатся список классов, с датами закрытых для редактирования.
Мне нужен запрос который показывает список классов, начиная с первой даты закрытия и заканчивая последней датой закрытия, в данном учреждении.
Диапазон даты я получил, нашел у вас на форуме хороший вариантик:
Код: plsql
1.
select date'01.09.2014'+generate_series(0,date'01.10.2014'-date'01.09.2014')


Впринципе все получилось, кроме самого диапазона, который привел выше, в нем приходится устанавливать начало и конец вручную, т.е. прописывая, а мне надо что бы начальная дата это была минимальная дата в таблице close_day а конечная соответственно максимальная дата в таблице close_day, как правильно написать такой запрос?
...
Рейтинг: 0 / 0
Диапазон дат
    #38765709
Бака
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заменяя начальную дату на
Код: plsql
1.
(SELECT MIN(date) FROM schemefood.close_day)


и конечную на
Код: plsql
1.
(SELECT MAX(date) FROM schemefood.close_day)


получал ошибку.
...
Рейтинг: 0 / 0
Диапазон дат
    #38765763
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бака,

Код: sql
1.
2.
3.
4.
5.
WITH d(dt) AS (
    VALUES(DATE '2014-09-20'),('2014-09-01'),(CURRENT_DATE)
)
SELECT DATE '2014-09-01' + i
  FROM generate_series(0, (SELECT max(dt)-min(dt) FROM d)) i;
...
Рейтинг: 0 / 0
Диапазон дат
    #38765814
Бака
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,

Если я правильно понял данный запрос, то он получается все равно не динамическим,
мне нужно что то вроде такого:
Код: plsql
1.
2.
3.
min := (SELECT MIN(date) FROM schemefood.close_day)
max := (SELECT MAX(date) FROM schemefood.close_day)
select dateMIN+generate_series(0,dateMAX-dateMIN)
...
Рейтинг: 0 / 0
Диапазон дат
    #38765835
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бака,

Замените константу для начального значения на подзапрос:

Код: sql
1.
2.
3.
4.
5.
WITH d(dt) AS (
    VALUES(DATE '2014-09-20'),('2014-09-01'),(CURRENT_DATE)
)
SELECT (SELECT min(dt) FROM d) + i
  FROM generate_series(0, (SELECT max(dt)-min(dt) FROM d)) i;
...
Рейтинг: 0 / 0
Диапазон дат
    #38765858
Бака
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov, все спасибо, очень выручили, все получилось!)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Диапазон дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]