Új hozzászólás Aktív témák
-
bpx
őstag
válasz
DopeBob
#2511
üzenetére
MySQL-es példát mutatsz, de CONNECT BY-t szeretnél használni, ami az "igazi" Oracle-ben van, MySQL-ben nincs, így maradjunk az Oracle-nél. A példádat kicsit kiegészítettem, mert ha csak két szintes a hierarchia, akkor túl triviális, még CONNECT BY sem kell.
create table table1 (id varchar2(10), part varchar2(100), qty int);
insert into table1 (id, part, qty) values ('1', '1--1', 2);
insert into table1 (id, part, qty) values ('1', '1--2', 4);
insert into table1 (id, part, qty) values ('1', '1--3', 8);
insert into table1 (id, part, qty) values ('1', '1--4', 5);
insert into table1 (id, part, qty) values ('1--1', '1--1--1', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--2', 2);
insert into table1 (id, part, qty) values ('1--1', '1--1--3', 2);
insert into table1 (id, part, qty) values ('1--2', '1--2--1', 2);
insert into table1 (id, part, qty) values ('1--3', '1--3--1', 2);
insert into table1 (id, part, qty) values ('1--4', '1--4--1', 3);
insert into table1 (id, part, qty) values ('1--4--1', '1--4--1--1', 7);
commit;Lekérdezés + eredmény:
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty
from table1 t1
start with id = '1'
connect by id = prior part;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1 1--1 2 2
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1 1--2 4 4
1--2 1--2--1 2 8
1 1--3 8 8
1--3 1--3--1 2 16
1 1--4 5 5
1--4 1--4--1 3 15
1--4--1 1--4--1--1 7 105Ha csak azok érdekelnek, amelyek a hierarchia utolsó szintjén vannak:
select id, part, qty, mqty from (
select id, part, qty,
(select exp(sum(ln(t2.qty)))
from table1 t2
start with t2.id = t1.id and t2.part = t1.part
connect by prior id = part
) mqty,
connect_by_isleaf leaf
from table1 t1
start with id = '1'
connect by id = prior part)
where leaf = 1;
ID PART QTY MQTY
---------- -------------------- ---------- ----------
1--1 1--1--1 2 4
1--1 1--1--2 2 4
1--1 1--1--3 2 4
1--2 1--2--1 2 8
1--3 1--3--1 2 16
1--4--1 1--4--1--1 7 105
Új hozzászólás Aktív témák
- Milyen billentyűzetet vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Házimozi haladó szinten
- Honor 200 Pro - mobilportré
- Arch Linux
- Assetto Corsa EVO
- sziku69: Fűzzük össze a szavakat :)
- Genshin Impact (PC, PS4, Android, iOS)
- Kazy Computers - Fehérvár - Megbízható?
- Viccrovat
- További aktív témák...
- Ryzen5 3700x 8core / GTX 1660 Super / SSD 500gb / HHD 2tb
- iPhone 13 mini 128GB silverlight független
- 15.gen! Intel Core ULTRA 9 285K (24mag!) +hűtött VRM-es Z890 lap! GAR/SZÁMLA (Te nevedre kiállítva)!
- Samsung Galaxy S23 Ultra 5G 256Gb Dual, kártya független, fehér színben
- Apple iphone 16 128Gb, kártya független, fehér színben
- Lenovo ThinkPad X1 Extreme Gen3 i7-10750H 32GB 1000GB GTX1650-Ti 4K UHD 1 év gar
- Dell Precision 7750,17.3" FHD,i7-10875H,32GB DDR4,256GB SSD,RTX 3000 6GB VGA,WIN11
- Apple iPhone 16 Pro Max 256GB Black Titanium használt, karcos kijelző 91% akku - 6 hó garancia
- Eredeti Lenovo 330W töltők - ADL330SDC3A
- BESZÁMÍTÁS! MSI B550M R5 5600X 16GB DDR4 512GB SSD ROG RTX 3070 Ti 8GB Asus A31 PLUS TG ARGB 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

