82. Rekursiv: mahsulot tarkibi (BOM)
QiyinMahsulot qismlardan yig'iladi, qismlar esa o'z navbatida boshqa qismlardan.
Velosiped ni yig'ish uchun kerak bo'ladigan barcha qismlarning umumiy
miqdorini hisoblang — har bosqichdagi miqdorlar ko'paytiriladi.
Masalan: velosipedga 2 ta g'ildirak, har g'ildirakka 36 ta spitsa kerak bo'lsa,
jami 72 ta spitsa.
Ustunlar: part, total_qty.
Saralash: part alifbo.
parts: id INT PK, name VARCHAR
components: parent_id INT, child_id INT, qty INT
Jadval: parts
| Ustun | Turi |
|---|---|
| id | INT PK |
| name | VARCHAR(60) |
Jadval: components
| Ustun | Turi |
|---|---|
| parent_id | INT |
| child_id | INT |
| qty | INT |
Namuna ma'lumotlar
sample
parts
| idINT | nameVARCHAR(60) |
|---|---|
| 1 | Velosiped |
| 2 | G'ildirak |
| 3 | Spitsa |
components
| parent_idINT | child_idINT | qtyINT |
|---|---|---|
| 1 | 2 | 2 |
| 2 | 3 | 36 |
Kutilgan natija
| part | total_qty |
|---|---|
| G'ildirak | 2 |
| Spitsa | 72 |
sample-full
parts
| idINT | nameVARCHAR(60) |
|---|---|
| 1 | Velosiped |
| 2 | G'ildirak |
| 3 | Spitsa |
| 4 | Ram |
| 5 | Rul |
| 6 | Podshipnik |
| 7 | Shina |
| 8 | Boltlar |
components
| parent_idINT | child_idINT | qtyINT |
|---|---|---|
| 1 | 2 | 2 |
| 1 | 4 | 1 |
| 1 | 5 | 1 |
| 2 | 3 | 36 |
| 2 | 7 | 1 |
| 2 | 6 | 2 |
| 4 | 8 | 12 |
| 5 | 6 | 1 |
| 5 | 8 | 4 |
Kutilgan natija
| part | total_qty |
|---|---|
| Boltlar | 16 |
| G'ildirak | 2 |
| Podshipnik | 5 |
| Ram | 1 |
| Rul | 1 |
| Shina | 2 |
| Spitsa | 72 |
sample-extra
parts
| idINT | nameVARCHAR(60) |
|---|---|
| 1 | Velosiped |
| 2 | O'rindiq |
| 3 | Kolodka |
| 4 | Podshipnik |
| 5 | Pedal |
components
| parent_idINT | child_idINT | qtyINT |
|---|---|---|
| 5 | 2 | 2 |
| 1 | 5 | 6 |
| 1 | 3 | 3 |
| 5 | 4 | 6 |
Kutilgan natija
| part | total_qty |
|---|---|
| Kolodka | 3 |
| O'rindiq | 12 |
| Pedal | 6 |
| Podshipnik | 36 |
O'xshash masalalar
Konsol
Natijani ko'rish uchun so'rovni ishga tushiring.
