[ zoricdejan @ 06.10.2022. 12:58 ] @
Pozdrav svima,

naisao sam na problem spajanja dva skupa podataka. Mozda je neko imao slican problem pa moze pomoci

Imam dva dokumenta
- Prvi dokument sadrzi dve kolone (ID kutije gde je proizvod smesten, sifra proizvoda)
- Drugi dokument dve kolone (ID kutije velike, ID kutije male). Male kutije se pakuju u velike.

ZADATAK: Treba da napravim vezu ID kutije male sa sifrom proizvoda.
PROBLEM: svi redovi se ponavljaju i ne moze da se svede na nivo jedinstvene vrednsoti (npr: proizvod pakovan u vise kutija pa ne moze da se svede ne jedinstveni broj)

Do skoro sam rucno to radio, ali sad vec imam problem jer je baza narasla na 10.000 redova i prakticno rucno jako puno vremena oduzima.


PRIMER:

TABELA 1
ID kutije - velika; sifra proizvoda
418001; 9032020
418001; 8950432
418004; 3455509
418009; 9278824
418010; 6893022
418002; 1806976
418002; 9278824
418002; 8950432
418003; 8983733


TABELA 2
ID kutije - velika; ID kutije - mala
418001; 56074
418001; 56075
418002; 56074
418002; 56299



Rezultat koji treba da dobijem:

ID kutije - mala; sifra proizvoda
56074; 9032020
56074; 8950432
56074; 1806976
56074; 9278824
56074; 8950432


[ MajorFatal @ 06.10.2022. 14:18 ] @
Ne znam da li sam dobro razumeo ali .. ako ti samo znaš koji su ti proizvodi u kojim velikim kutijama, kao i koje su ti male kutije u kojim velikim kutijama, ama baš ništa ne može da ti kaže koji su proizvodi u kojim malim kutijama, sem da ručno sve prvo popišeš, ili ako i oko toga postoji neko pravilo, na primer da je proizvod 8950432 uvek u maloj kutiji 56074 i u drugačije obeleženoj maloj kutiji ne može da bude .. ?
[ mjanjic @ 07.10.2022. 01:26 ] @
Tako je to kad se nepravilno čuvaju podaci po nekoj naopakoj logici, a evo zašto:
- ako znamo da su u velikoj kutiji 418001 proizvodi sa šiframa 9032020 i 8950432, kao i da su u toj velikoj kutiji male kutije 56074 i 56075, kako ćemo a znamo koja šifra proizvoda je u kojoj od malih kutija? Ti možeš nekim programiranjem dobiti da bilo koja od te 2 kutije sadrži oba proizvoda sa navedene dve šifre, ali da li je to tako?
Nešto mi to nema logike, jer ako kutija sa istim ID može sadržati proizvod sa jednom ili drugom šifrom, kako ćeš onda da nađeš proizvod sa tačno određenom šifrom, osim da pogledaš sadržaj jedne i druge male kutije?


Ono što si ti mislio da izračunaš - sve šifre koje su pridružene maloj kutiji sa određenim ID, uz ograđivanje da se neki od tih proizvoda nalaze i u nekim drugim malim kutijama sa drugim ID - možeš da uradiš nekim programiranjem, npr. VBA ili još bolje Python + Panda, ali kako će ti to pomoći?

Mislim da bi mnogo više značilo da navedeš tačno kako izgledaju te 2 tabele, a ne ovako napravio primer na jednom Excel listu/Sheet-u...
Možda može da pomogne "Ablebits Ultimate Suite", ima razne Wizard-e za spajanje podataka iz više tabela, ali teško. ima sličnih primera, ali ne sa duplikatima u 2 tabele.

Po meni, to je najbolje da sačuvate kao CSV i iskodirate lepo konverziju u JSON za te 2 tabele, onda je dalje lako iskodirati, može i dalje da se čuva kao JSON, a može i u nekoj noSQL bazi tipa MongoDB, Cosmos DB, ili čak na Firestore.

Ovako, ako i dalje nastavite da se patite sa tim Excel-om, samo ćete pogoršati stvar, jer podaci nisu unošeni kako treba, zato ste i došli do 10.000 vrsta, a u stvari nema 10.000 različitih artikala, već samo toliko kombinacija artikala i kutija, mada je i to upitno, pa je možda bolje da prvo uklonite duplikate u svakoj od tabela.
[ zoricdejan @ 31.10.2022. 07:14 ] @
Hvala Svima uspeo sam da rešim problem.

Preko Access samo Join-ujem tabele , željeni rezultat dobijem za par sekundi.

P.S. Kombinacije postoje i moguće su i nemaju veze sa pakovanjem. Možda sam loš primer dao pa sam vas naveo u pogrešan smer. Poenta mi je bila kako da rešim dve različite tabele gde imam N x N kombinacija gde sve veze i kombinacije suštinski postoje.

Rešenje: Prvu tabelu sam zadržao kakva i jeste a drugu sam transformisao u obliku da ID se ne pojavljuje više puta. Funkcija Left Join i rezultat je identičan kao i kad sam ručno pravio satima.