powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / список дат
14 сообщений из 14, страница 1 из 1
список дат
    #34554761
PythonWin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

помогите пожалуйста с запросом:
есть две даты - например: '2007-04-1 00:00:00' и '2007-6-30 00:00:00'
нужно вывести все даты в этом интервеле, т.е.
'2007-04-1'
'2007-04-2'
'2007-04-3'
...
'2007-06-30'
...
Рейтинг: 0 / 0
список дат
    #34554773
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем вывести? Напиши процедуру - на входе две даты, на выходе набор данных.
...
Рейтинг: 0 / 0
список дат
    #34554817
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select date'2007-04-01'+generate_series(0,date'2007-06-30'-date'2007-04-01')
...
Рейтинг: 0 / 0
список дат
    #34554831
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
\\http://sql.ru/forum/actualsearch.aspx?search=generate_series&sin=0&a=&ma=0&bid=7&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
список дат
    #34554852
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во... как важно ХОРОШО знать особенности БД.

Скажи Microsoft'у "Прощай"!
...
Рейтинг: 0 / 0
список дат
    #34554958
PythonWin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>select date'2007-04-01'+generate_series(0,date'2007-06-30'-date'2007-04-01')
а как совместить этот запрос и запрос из таблиц:
select table1.col1, table1.col2, sum(table2.col)
from table1
INNER JOIN table2 ON table1.id=table2.table1_id
INNER JOIN table3 ON table2.id = table3.table2_id and table3.date::date=date1::date;
где вместо date1 - элемент из запроса:
select date'2007-04-01'+generate_series(0,date'2007-06-30'-date'2007-04-01')
...
Рейтинг: 0 / 0
список дат
    #34554984
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select table1.col1, table1.col2, sum(table2.col)
from table1
INNER JOIN table2 ON table1.id=table2.table1_id
INNER JOIN table3 ON table2.id = table3.table2_id and table3.date::date between date'2007-04-01' and date'2007-06-30';
...
Рейтинг: 0 / 0
список дат
    #34555022
PythonWin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:) тогда мне не выведутся пустые значения, т.е. если нет в table3 записей удовлетворяющих table3.date::date=date1::date должно получиться в результате:
'2007-04-1', table1.col1, table1.col2, 0
'2007-04-2', table1.col1, table1.col2, 0
'2007-04-3', table1.col1, table1.col2, 756987
'2007-04-4', table1.col1, table1.col2, 0
..
'2007-06-30', table1.col1, table1.col2, 45
...
Рейтинг: 0 / 0
список дат
    #34555073
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
join ( select date'2007-04-01'+generate_series(0,date'2007-06-30'-date'2007-04-01') as c_d ) as t_d on ( t_d.c_d=table3.date::date)
...
Рейтинг: 0 / 0
список дат
    #34555259
PythonWin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за примеры - к сожелению не то что мне нужно, видимо нужно использовать хранимую функцию...
...
Рейтинг: 0 / 0
список дат
    #34557367
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с outer join пожалуй должно получиться
...
Рейтинг: 0 / 0
список дат
    #34557474
Paramedic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделай селект из селекта, и объедени два запроса:

select t2.* from
(select table1.col1, table1.col2, sum(table2.col) as col3, table3.date
from table1
INNER JOIN table2 ON table1.id=table2.table1_id
INNER JOIN table3 ON table2.id = table3.table2_id ) as t2
left join
select t1.* from
(select date'2007-04-01'+generate_series(0,date'2007-06-30'-date'2007-04-01') as dte) as t1
on t1.dte = t2.date
...
Рейтинг: 0 / 0
список дат
    #34557494
Paramedic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данном случае right join, либо перекинуть селекты местами.
...
Рейтинг: 0 / 0
список дат
    #34569761
PythonWin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо за помощь!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / список дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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