powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы [новые:1] / Просто Трёп [закрыт для гостей] [новые:1] / бНОПНЯ про орацле
56 сообщений из 56, показаны все 3 страниц
бНОПНЯ про орацле
    #436815
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
вот допустим делаем так
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
create or replace procedure test_proc
(p_param in VARCHAR2 )
as
v_qry varchar2(1000);
begin
    v_qry := 'select '''||p_param||''' z from dual';
    dbms_output.put_line(p_param);
    dbms_output.put_line(v_qry);
end test_proc;
и в дбмс он напишет всё, как полагается
ыск3.png
теперь пишем функцию!
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or replace function test_func
(p_param in VARCHAR2 )
return varchar2 SQL_MACRO
is
v_qry varchar2(1000);
begin
    v_qry := 'select '''||p_param||''' z from dual';
    dbms_output.put_line(p_param);
    dbms_output.put_line(v_qry);

return v_qry;
end test_func;
и делаем select * from test_func('xyz')
scr2.png
бНОПНЯ: почему он в первом случае параметр увидел и вернул нам, как и просили. а во втором случае - нет?
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436820
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
а вот эта строка от функции
dbms_output.put_line(v_qry);

выдаёт
2323.png
т.е. функция параметр не видит
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436840
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что ты не показал, что он пишет в dbms
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436842
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, показал, торможу )
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436847
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  21.06.2023, 12:35
[игнорируется]
Код: SQL
1.
SQL_MACRO
Код: SQL
1.
v_qry := 'select '''||test_func.p_param||''' z from dual';
...
Изменено: 21.06.2023, 12:59 - Кусь
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436848
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 12:35
[игнорируется]
Код: SQL
1.
return varchar2 [u][b]SQL_MACRO[/b][/u]
ну ты понял
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436851
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
блеать йобынй жырный фашист02

не мог сделать так что бы форум понимал чо я сказать хочу
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436852
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
в общем убери нахуй этот SQL_MACRO
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436854
Камикадзо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  21.06.2023, 12:35
[игнорируется]
select * from test_func('xyz')
что это за хуета?

может так надо?
select test_func('xyz') fom dual
...
Изменено: 21.06.2023, 13:03 - Камикадзо
Рейтинг: 1 / 0
Нравится: Мудило
бНОПНЯ про орацле
    #436855
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 12:59
[игнорируется]
в общем убери нахуй этот SQL_MACRO
так мне надо, чтобы можно было селектить эту функцию
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436858
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
Камикадзо  21.06.2023, 13:02
[игнорируется]
ZаЛупина  21.06.2023, 12:35
[игнорируется]
select * from test_func('xyz')
что это за хуета?

может так надо?
select test_func('xyz') fom dual
нет, см. SQL_MACRO
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436860
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436861
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
это либо бага, либо недоработка, или так нельзя делать, но тогда хотелось бы понять логику , которой руководствовались разрабы оракла
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436864
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 13:03
[игнорируется]
eNose  21.06.2023, 12:59
[игнорируется]
в общем убери нахуй этот SQL_MACRO
так мне надо, чтобы можно было селектить эту функцию
https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/sql_macro-clause.html#GUID-292C3A17-2A4B-4EFB-AD38-68DF6380E5F7
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436872
Камикадзо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  21.06.2023, 13:06
[игнорируется]
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
а какой смысл собирать запрос? это неэффективно.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436882
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
Камикадзо  21.06.2023, 13:11
[игнорируется]
ZаЛупина  21.06.2023, 13:06
[игнорируется]
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
а какой смысл собирать запрос? это неэффективно.
но было бы красиво в коде
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436890
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 13:16
[игнорируется]
Камикадзо  21.06.2023, 13:11
[игнорируется]
ZаЛупина  21.06.2023, 13:06
[игнорируется]
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
а какой смысл собирать запрос? это неэффективно.
но было бы красиво в коде
DBMS_SQL
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436955
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 13:28
[игнорируется]
ZаЛупина  21.06.2023, 13:16
[игнорируется]
Камикадзо  21.06.2023, 13:11
[игнорируется]
ZаЛупина  21.06.2023, 13:06
[игнорируется]
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
а какой смысл собирать запрос? это неэффективно.
но было бы красиво в коде
DBMS_SQL
хотел сделать чз макро
ну ладно

вообще, странно работает
если написать
Цитата 
[игнорируется]
return q'{select p_param z from dual}';
то select * from test_func('xyz')
вернёт
яяяя.png
а если
Код: SQL
1.
return q'{select 'z' p_param from dual}';
то
ыыыыы.png
т.е. он параметр то понимает, то нет
но больше боли доставило то, что он не позволяет оперировать параметром в коде. он видит его значение как NULL, что бы ты в нём не передал
...
Изменено: 21.06.2023, 14:08 - ZаЛупина
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436973
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
q - квотирование строки

вот и думай что оно там квотирует
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436976
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 13:59
[игнорируется]
но больше боли доставило то, что он не позволяет оперировать параметром в коде
потому что это СТРОКА, а не код

сформируй строку в другом месте, а затем квотируй готовый результат.
если оно вообще тебе надо, конечно.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436978
Мудило
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
eNose  21.06.2023, 13:28
[игнорируется]
ZаЛупина  21.06.2023, 13:16
[игнорируется]
Камикадзо  21.06.2023, 13:11
[игнорируется]
ZаЛупина  21.06.2023, 13:06
[игнорируется]
идея была кинуть через параметры в функцию всё, что надо,чтобы там собрался запрос, ф-ция вернула данные уже по этому запросу
а какой смысл собирать запрос? это неэффективно.
но было бы красиво в коде
DBMS_SQL
у Залупы BDSM_SQL
...
Рейтинг: 2 / 0
Нравится: Гарыныч, Кусь
бНОПНЯ про орацле
    #436993
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 14:16
[игнорируется]
потому что это СТРОКА, а не код
строка
почему он её не принтит в дбмс_аут ? (т.е. почему он её считает нуллом)
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #436994
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
Мудило  21.06.2023, 14:17
[игнорируется]
BDSM_SQL
[:bdsm]
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437001
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 14:25
[игнорируется]
eNose  21.06.2023, 14:16
[игнорируется]
потому что это СТРОКА, а не код
строка
почему он её не принтит в дбмс_аут ? (т.е. почему он её считает нуллом)
полный код функции покажи
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437004
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 14:26
[игнорируется]
ZаЛупина  21.06.2023, 14:25
[игнорируется]
eNose  21.06.2023, 14:16
[игнорируется]
потому что это СТРОКА, а не код
строка
почему он её не принтит в дбмс_аут ? (т.е. почему он её считает нуллом)
полный код функции покажи
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or replace function test_func
(p_param in VARCHAR2 )
return varchar2 SQL_MACRO
is
v_qry varchar2(1000);
begin
    v_qry := 'select '''||p_param||''' z from dual';
    dbms_output.put_line(p_param);
    dbms_output.put_line(v_qry);

return v_qry;
end test_func;
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437011
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
т.е. функция вот так параметр поймёт, как NULL
v_qry := 'select '''||p_param||''' z from dual';

а вот так - как то, что в нём пришло
v_qry := 'select p_param z from dual';

в этом и загогулина
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437013
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
dbms_output.put_line(p_param);
dbms_output.put_line(v_qry);

что из них выдает нулл?
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437014
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 14:32
[игнорируется]
dbms_output.put_line(p_param);
dbms_output.put_line(v_qry);

что из них выдает нулл?
первая
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437015
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 14:33
[игнорируется]
eNose  21.06.2023, 14:32
[игнорируется]
dbms_output.put_line(p_param);
dbms_output.put_line(v_qry);

что из них выдает нулл?
первая
ты покажи вывод dbms, а не результат выполнения функции
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437020
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 14:34
[игнорируется]
ты покажи вывод dbms, а не результат выполнения функции
ZаЛупина  21.06.2023, 12:41
[игнорируется]
а вот эта строка от функции
dbms_output.put_line(v_qry);

выдаёт
2323.png
т.е. функция параметр не видит
это последовательное выполнение
dbms_output.put_line(p_param);
dbms_output.put_line(v_qry);
сначала пустая строка
дальше селект, но с пустыми кавычками
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437040
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
pasted_image.png
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437047
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
select test_func('xyz') from dual

DBMS:
xyz
select 'xyz' z from dual

результат:
select 'xyz' z from dual
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437063
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  21.06.2023, 14:48
[игнорируется]
select test_func('xyz') from dual

DBMS:
xyz
select 'xyz' z from dual

результат:
select 'xyz' z from dual
залупа вроде хотел из этой функции селектить, а не селектить её from dual
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437073
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Кусь  21.06.2023, 14:54
[игнорируется]
eNose  21.06.2023, 14:48
[игнорируется]
select test_func('xyz') from dual

DBMS:
xyz
select 'xyz' z from dual

результат:
select 'xyz' z from dual
залупа вроде хотел из этой функции селектить, а не селектить её from dual
если ты помечаешь функцию как sql_macro, то надо сразу return делать, так как это будет не pl/sql.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437080
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
вот так:

create or replace function test_func
(p_param in VARCHAR2 )
return varchar2 SQL_MACRO
is
begin
return q'{select p_param z from dual}';
end test_func;
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437086
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 14:58
[игнорируется]
если ты помечаешь функцию как sql_macro, то надо сразу return делать, так как это будет не pl/sql.
это боль
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437091
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 15:03
[игнорируется]
eNose  21.06.2023, 14:58
[игнорируется]
если ты помечаешь функцию как sql_macro, то надо сразу return делать, так как это будет не pl/sql.
это боль
ты же сам написал, что это МАКРОС
но упорно пытаешься в sql вхуячить pl/sql
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437093
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
скажи компилятору что это ассемблерная вставка, и вхуячь туда код на бэйсике
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437095
Кусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  21.06.2023, 15:06
[игнорируется]
скажи компилятору что это ассемблерная вставка, и вхуячь туда код на бэйсике
и получится какая-то залупа
...
Рейтинг: 1 / 1
Нравится: Мудило
Не нравится: ZаЛупина
бНОПНЯ про орацле
    #437106
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
eNose  21.06.2023, 15:05
[игнорируется]
ZаЛупина  21.06.2023, 15:03
[игнорируется]
eNose  21.06.2023, 14:58
[игнорируется]
если ты помечаешь функцию как sql_macro, то надо сразу return делать, так как это будет не pl/sql.
это боль
ты же сам написал, что это МАКРОС
но упорно пытаешься в sql вхуячить pl/sql
раз они в оракле обозвали это функцией, то должны были позаботиться, чтобы pl/sql внутри функции тоже работал полноценно с параметрами
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #437128
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
ZаЛупина  21.06.2023, 15:09
[игнорируется]
eNose  21.06.2023, 15:05
[игнорируется]
ZаЛупина  21.06.2023, 15:03
[игнорируется]
eNose  21.06.2023, 14:58
[игнорируется]
если ты помечаешь функцию как sql_macro, то надо сразу return делать, так как это будет не pl/sql.
это боль
ты же сам написал, что это МАКРОС
но упорно пытаешься в sql вхуячить pl/sql
раз они в оракле обозвали это функцией, то должны были позаботиться, чтобы pl/sql внутри функции тоже работал полноценно с параметрами
они просто решили проблему отсутствия макросов как умели - через жопу

у тебя по этому и dbms вывод такой - sql понятия не имеет о твоей объявленной переменной, а pl/sql понятия не имеет о параметре (потому что функция обработала его как параметр макроса)

вообще логично было бы плюнуть ошибкой, что мол чо за нахуй вообще это такое, почему переключается контекст выполнения?
...
Рейтинг: 1 / 0
Нравится: ZаЛупина
бНОПНЯ про орацле
    #437251
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  21.06.2023, 14:31
[игнорируется]
а вот так - как то, что в нём пришло
v_qry := 'select p_param z from dual';
О чём и написано в документации.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #494620
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
допустим, есть такая таблица
2023-07-31_182851.png
cd - код
p_cd - его родительский

на нижних ветках некие числа
надо поднять их в виде сумм на родительские коды
2023-07-31_183057.png
в виде запроса
если в условии во 2й табл указать только один год, то всё работает. с двумя годами начинается непонятное
хотя, казалось бы, коррелированная табл под суммой связана годом

короч, вопрос. как это развернуть, чтобы он отдавал суммы как надо, и считал правильно?
Код: PL/pgSQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with tmp (yr, cd, cd_p, q) as
(
select 2022 , 1 , NULL , 0 from dual union all
select 2022 , 2 , 1 , 0 from dual union all
select 2022 , 3 , 1 , 0 from dual union all
select 2022 , 4 , 2 , 100 from dual union all
select 2022 , 5 , 3 , 200 from dual union all
select 2023 , 1 , NULL , 0 from dual union all
select 2023 , 2 , 1 , 0 from dual union all
select 2023 , 3 , 1 , 0 from dual union all
select 2023 , 4 , 2 , 300 from dual union all
select 2023 , 5 , 3 , 400 from dual
),
t as
(select * from tmp /* where  yr=2022 */)
select -- пересуммируем родительские из чайлдов
yr,
cd,
cd_p,
q,
(select sum(t2.q) from (select  * from t where t.yr=t1.yr)  t2 start with t2.cd = t1.cd connect by prior t2.cd = t2.cd_p) sum_v
from t t1
start with t1.cd_p is null
connect by prior cd = cd_p
order by yr, cd
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #494648
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничо нипонял.
Может завтра посмотрю.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #494959
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
кажется, есть одна мысль
сейчас поп робую
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #494965
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
а, нет. не взлетело
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #494971
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
пытаюсь взять через докручивание коррелированными подзапросами, но хуй
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495023
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина [игнорируется] 

Что такое у тебя cd?
Номер по порядку в разрезе года?
Построй такое дерево, чтобы у тебя ID не пересекались вообще.
Например просто сгенерируй на основании cd и yr уникальный cd_id и cd_p_id, от этого дальше и танцуй.
Пока ты этого не сделаешь у тебя так и будет херня, потому что посмотри своё дерево
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
with tmp (yr, cd, cd_p, q) as
(
select 2022 , 1 , NULL , 0 from dual union all
select 2022 , 2 , 1 , 0 from dual union all
select 2022 , 3 , 1 , 0 from dual union all
select 2022 , 4 , 2 , 100 from dual union all
select 2022 , 5 , 3 , 200 from dual union all
select 2023 , 1 , NULL , 0 from dual union all
select 2023 , 2 , 1 , 0 from dual union all
select 2023 , 3 , 1 , 0 from dual union all
select 2023 , 4 , 2 , 300 from dual union all
select 2023 , 5 , 3 , 400 from dual
)
select
      yr, cd, cd_p, q
   from
      tmp a
   start with cd_p is null
   connect by prior cd = cd_p
У тебя там 26 строк.
Короче почитай как строится дерево.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495029
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
Горбатый ёж  01.08.2023, 10:50
[игнорируется]
Что такое у тебя cd?
Номер по порядку в разрезе года?
коды. некоторые из которых могут быть родительскими для других кодов
насколько я понял, ты предлагаешь рассматривать год как элемент дерева
а я просто хочу построить разные ветви в разрезе годов, схлопнув суммы по узлам дерева с нижних веток, но вытащить их одним селектом
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495031
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  01.08.2023, 10:57
[игнорируется]
а я просто хочу построить разные ветви в разрезе годов
Ну так и почитай, как строится дерево!
Что такое ID и MAIN_ID.
Я так понимаю тебе хочется вот по такому дереву идтить
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with tmp (yr, cd, cd_p, q) as
(
select 2022 , 1 , NULL , 0 from dual union all
select 2022 , 2 , 1 , 0 from dual union all
select 2022 , 3 , 1 , 0 from dual union all
select 2022 , 4 , 2 , 100 from dual union all
select 2022 , 5 , 3 , 200 from dual union all
select 2023 , 1 , NULL , 0 from dual union all
select 2023 , 2 , 1 , 0 from dual union all
select 2023 , 3 , 1 , 0 from dual union all
select 2023 , 4 , 2 , 300 from dual union all
select 2023 , 5 , 3 , 400 from dual
)
select
      yr, cd, cd_p, q
   from
      tmp a
   connect by prior yr*cd = yr*cd_p;
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495032
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
заговнокожу хп, как вариант
который будет работать с выборкой по каждому году. суммировать, загружать в табличку, и так в цикле
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495034
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  01.08.2023, 10:59
[игнорируется]
заговнокожу хп, как вариант
который будет работать с выборкой по каждому году. суммировать, загружать в табличку, и так в цикле
Тоже вариант.
Но ты просто неправильно строишь дерево.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495040
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
Горбатый ёж  01.08.2023, 11:01
[игнорируется]
ZаЛупина  01.08.2023, 10:59
[игнорируется]
заговнокожу хп, как вариант
который будет работать с выборкой по каждому году. суммировать, загружать в табличку, и так в цикле
Тоже вариант.
Но ты просто неправильно строишь дерево.
ну я понял, да. как только мешаются другие поля, и дублируются коды из дерева, начинается мешанина
но непонятно, почему через корр. подзапросы он не фильтрует , и порциями по-годово не подсовывает табличку под дерево
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495043
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  01.08.2023, 11:03
[игнорируется]
дублируются коды из дерева
Ты понимаешь смысл связки родитель-наследник?
Они должны связываться по коду, который должен быть уникальным.
У тебя уникальность только в рамках года, ну так и сделай уникальность посредством перемножения кода на год или сложением, не будет у тебя никаких проблем тогда.
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495045
Горбатый ёж
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZаЛупина  01.08.2023, 11:03
[игнорируется]
но непонятно, почему через корр. подзапросы он не фильтрует , и порциями по-годово не подсовывает табличку под дерево
Потому что у тебя один хуй в результате строит дерево по условию connect by prior cd = cd_p!
...
Рейтинг: 0 / 0
бНОПНЯ про орацле
    #495190
ZаЛупина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
беZ трусиков!
ZаЛупина  01.08.2023, 10:59
[игнорируется]
заговнокожу хп, как вариант
реализовал
работает как часы! [:ok]
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы [новые:1] / Просто Трёп [закрыт для гостей] [новые:1] / бНОПНЯ про орацле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Игнорируют тему (3): erbol, Королева Жезлов, папа акуз
Читали форум (23): Анонимы (13), С чистого листа, Sparrow, Три нитки, Сталкер, паразит 1 мин., Tabula Rasa 3 мин., kkk-jjj 4 мин., Кусь 5 мин., s62 8 мин., IT-Клоп 9 мин.
Пользователи онлайн (32): Анонимы (15), С чистого листа, Sparrow, Три нитки, Просто Трёп, Сталкер, Yandex Bot, паразит 1 мин., Barkrowler 3 мин., Tabula Rasa 3 мин., Bing Bot 3 мин., kkk-jjj 4 мин., Буся 5 мин., Кусь 5 мин., CerebroSQL 6 мин., Т-Миронов 6 мин., s62 8 мин., IT-Клоп 9 мин.
x
x
Закрыть


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