Мне нужно создать строку для каждого месяца (результат должен быть первым днем месяца) между двумя датами для каждого человека в моей таблице. Например, если у меня есть следующие данные в моей исходной таблице:Создайте строку для каждого месяца между двумя датами в PostgreSQL
rowID | person | startdate | enddate
1 | 12345 | 2014-04-01 | 2014-11-30
2 | 67890 | 2014-03-01 | 2014-05-01
Я хочу, чтобы результаты в моей таблице назначения быть:
person | month
12345 | 2014-04-01
12345 | 2014-05-01
12345 | 2014-06-01
12345 | 2014-07-01
12345 | 2014-08-01
12345 | 2014-09-01
12345 | 2014-10-01
12345 | 2014-11-01
67890 | 2014-03-01
67890 | 2014-04-01
67890 | 2014-05-01
Большое спасибо за помощь.
Используя набор функции, возвращающей в 'списке select' не рекомендуется. Таким образом ** ** действительно требуется боковое соединение. –
@a_horse_with_no_name Это обескуражение предназначено для нескольких возвращаемых функций набора. –
@a_horse_with_no_name Можете ли вы объяснить причину, почему функция возвращаемого набора в списке выбора не рекомендуется? Или ссылку, которая объясняет это? –