powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / дополнить месяцы
4 сообщений из 4, страница 1 из 1
дополнить месяцы
    #39587139
Добрый день,

мне нужно создавать столько месяцев, сколько записанно в count_month
Вот решение:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with t#
as
(
select to_date ('01.06.2017','dd.mm.yyyy') as datum_monat, 12 id_zr_bauteil, 'BAROMETER' as zr_bauteile, 12 count_month from dual
UNION ALL
select to_date ('01.07.2017','dd.mm.yyyy') as datum_monat, 13 id_zr_bauteil, 'TERMOMETER' as zr_bauteile, 20 count_month  from dual
)
select add_months(datum_monat,monat) as datum_monat, 
      id_zr_bauteil,
       zr_bauteile,
       count_month
from t#,
 ( SELECT rownum monat  FROM DUAL  CONNECT BY LEVEL <= 400) mon
 where monat <=count_month
 order by 3,2,1



Знаю, что максимальное количество месяцев не больше 120.
Поэтому, взял, для уверенности, CONNECT BY LEVEL <= 400.
Как можно переписать запрос, что-бы уйти от постоянного числа месяцев в CONNECT BY LEVEL (400)?
Получить что-то вроде CONNECT BY LEVEL <= count_month.
Заранее спасибо

Oracle 12.1.0.2.0
...
Рейтинг: 0 / 0
дополнить месяцы
    #39587140
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
select *
from t#, 
lateral(select rownum from dual connect by level <= count_month);
...
Рейтинг: 0 / 0
дополнить месяцы
    #39587161
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hans Christian Andersen,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with t#
as
(
select to_date ('01.06.2017','dd.mm.yyyy') as datum_monat, 12 id_zr_bauteil, 'BAROMETER' as zr_bauteile, 12 count_month from dual
UNION ALL
select to_date ('01.07.2017','dd.mm.yyyy') as datum_monat, 13 id_zr_bauteil, 'TERMOMETER' as zr_bauteile, 20 count_month  from dual
)
select add_months(datum_monat,monat) as datum_monat, 
      id_zr_bauteil,
       zr_bauteile,
       count_month
from t#,xmltable('1 to xs:integer(.)' passing count_month  columns monat int path '.') m
 order by 3,2,1
/



.....
stax
...
Рейтинг: 0 / 0
дополнить месяцы
    #39587166
спасибо
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / дополнить месяцы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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