|
[ laponac84 @ 14.07.2010. 19:41 ] @
| Pozdrav
(Nadam se da sam lepo pretrazio ES forum i da se ova tema javlja prvi put)
Evo problema.
U tabeli baze Igraci, postoje sledeca polja: Ime, Prezime. Uneo sam nekih 250 redova, pa bih hteo malo da ubrzam, uz pomoc kombinatorike
Kako bi trebalo da izgleda kod ili upit (ako je to moguce) da se iskombinuju sva imena sa prezimenima
NPR:
dosadasnji unosi
-----------------
Ivan, MItrovic
Zeljko, Stojanovic
Petar, Milicic
...
a rezultat da bude sledeci
--------------------
Ivan, Mitrovic
Ivan, Stojanovic
Ivan, Milicic
Zeljko, Mitrovic
Zeljko, Stojanovic
Zeljko, Milicic
Petar, Mitrovic
...
Hvala u napred
|
[ izonic @ 14.07.2010. 22:41 ] @
SELECT Table1.ime, Table1_1.prezime
FROM Table1, Table1 AS Table1_1
[ sule99 @ 15.07.2010. 08:08 ] @
Za kreirenje Kartezijevog produkta obično se koristi naredba CROSS JOIN pa bi tvoj upit glasio ovako (ovo je za SQL, valjda će raditi i u Accessu)
SELECT r.ime,j.prezime FROM Tablica r
CROSS JOIN Tablica j
Može i ovako kako je izonic napisao, ali ovo ti je još jedan način pomoću naredbe koja baš za to i služi, pa zato mislim da je pravilnije (izonic nemoj se samo naljutiti :) )
pozdrav
[ Zoran.Eremija @ 15.07.2010. 08:44 ] @
Da dodam primer...
[ laponac84 @ 15.07.2010. 08:49 ] @
Hvala, uspelo je, u novu tabelu sam upisao nekih, cini mi se 52000 novih igraca
Malo sminkanja
U ovoj tabeli se npr:
Marko Stevanovic ponavlja 50-ak puta, Petar Petrovic 100 puta...
Kako iscistiti tabelu od duplih naziva da ne bi imao gomilu istoimenih igraca u tabeli ?
(znam da je problem u tome sto sam uneo nekoliko puta ime Petar ili neko drugo ime, jednostavno je tesko smisliti 300 razlicitih imena i prezimena :) pa bi ako je moguce to da resim kodom)
Unapred hvala
[ Getsbi @ 15.07.2010. 09:45 ] @
U pretragu ukucaš reči: brisanje duplikata.
http://www.elitesecurity.org/t403547-0#2634980
Ako ti nesmetaju u tabeli, isčišććene podatke možeš dobiti i pomoću query-ja upotrebom DISTINCT.
Code: SELECT DISTINCT Tabela.polje
FROM Tabela;
[ izonic @ 15.07.2010. 10:07 ] @
Nakbolje ces ocistiti ako napravis novu tabelu gdje ce biti prim. kljuc sa dva polja tj. ime i prezime. te u nju prebacis podatke a staru obrises.
Naravno ovo vredi ako je jednokratno.
Za laponca:
Zasto te ne vidim na msn vise hehe.
[ laponac84 @ 15.07.2010. 10:18 ] @
Hvala probacu, pa se javljam :)
Za Zonu, evo sada cu se prijaviti na msn :)))
[ Zoran.Eremija @ 15.07.2010. 10:52 ] @
Izmenjen primer
[ laponac84 @ 15.07.2010. 11:57 ] @
Hvala Zorane,vpogledacu ovo, pa ako nesto nije jasno zovem u pomoc :)
PS:
Posto sam ja ispao iz "access forme" resio sam da se bacim na ponovno vezbanje, posto bez njega ne moze. Knjigovodstveni program sam zaobisao, jer mora da prati zakone.... a ovaj primer sam uzeo, jer hocu da vidim kako bi izgledao najprostiji menadzer (Sa igracima, klubovima, korisnicima...) korisnike i logovanje sam uradio... nasao sam ovde nesto i sa slikama i sa aksesom sto mi moze koristiti... a o ostalim problemima o tom, po tom :)
[ laponac84 @ 15.07.2010. 12:42 ] @
Video sam primer, bas mi je to trebalo, napunio sam bazu sa nesto malo preko 44.000 igraca (plus je sacuvana nacionalnost, na osnovu prezimena koju sam dodeljivao na startu) tako da sam dobio jednu multinacionalnu tabelu :P
[ laponac84 @ 15.07.2010. 12:58 ] @
Kako u tabelu uneti vrednosti po slucajnom principu. Pojasnicu problem na primeru
U bazi postoji tabela IGRACI sa poljima ID, Ime, Prezime, Nacionalnost. Svaki od tih igraca, trebalo bi da ima svoje karakteristike (Godine, Visinu, tezinu, ...) Problem rucnog unosa ne bi postajo, da se radi o nekoj manjoj kolicini upisa (stotinak) ali kad je rec o nekoliko desetina hiljada, tu je vec problem.
Kako ovim karakteristikama, ispuniti tabelu, po slucajnom principu ali tako da se broj godina krece od npr 18-40, visina od 165-210, i tako redom
(ako je moguce, da se zadrzimo na karakteristici VISINA kao primeru za ovaj problem)
Podpitanje:
Da li je ove podatke (karakteristike) preporucljivo drzati u istoj tabli ciji sam primer naveo, ili u zasebnoj tabeli KARAKTERISTIKE koja se povezuje na tabelu IGRACI
Napomena:
Ovaj problem je nadovezan (sledeci korak u popunjavanju tabele uz pomoc koda) za temu na ovom linku http://www.elitesecurity.org/t404949-0#2648674
Nisam hteo da u tabelu IGRACI unosim karakteristike, jer bi se npr. desilo da su svi igraci sa prezimenom Sretenovic istih karakteristika (Godina, Visine, Tezine...), a brisanjem duplikata, ne bih nista dobio u ovom slucaju...
[ Zoran.Eremija @ 15.07.2010. 13:36 ] @
Evo slucaja ...
[ laponac84 @ 15.07.2010. 13:53 ] @
Hvala Zorane, popunjna je tabela
Ako moze samo pojasnjenje koda ?
Int((210-165+1)*Rnd([TakmicarID])+165)
Pojasnjenje mi je potrebno da igracima dodelim kojom nogom sutiraju, po slucajnom pricipu (leva, desna ili obe) ili poziciju (MC, CF, LM, DC, GK...)
Hvala u napred :)
[Ovu poruku je menjao laponac84 dana 15.07.2010. u 15:17 GMT+1]
[ Zoran.Eremija @ 15.07.2010. 14:12 ] @
Imate u Hlep-u Access-a a mozete pogledati ovde
http://www.webcheatsheet.com/sql/access_functions/rnd.php
Daklem radi se o generatoru slucajnog broja, koji je realan broj u granicama 0-1.
Sintaksa je
RND ili Rnd([Broj])
Broj je neki inicijalni broj koji ova funkcija koristi kao polazni da bi dosao do slucajnog uzorka
Int((GornjaGranica-DonjaGranica+1)*Rnd([Broj])+DonjaGranica)
Ako zelite da vam je slucajno generisan broj u granicama DonjaGranica, GornjaGranica
Upravo ste za visinu Vi postavili te vrednosti
Int((210-165+1)*Rnd([TakmicarID])+165)
[ laponac84 @ 15.07.2010. 14:18 ] @
Uh, dok sam ja dopunio moje pitanje, stize odgovo
"Pojasnjenje mi je potrebno da igracima dodelim kojom nogom sutiraju, po slucajnom pricipu (leva, desna ili obe) ili poziciju (MC, CF, LM, DC, GK...)
Hvala u napred :)"
Pogledacu link koji ste ostavili, pa se javljam
Hvala
[ laponac84 @ 15.07.2010. 14:28 ] @
Hvala, Koristan link ;)
Jesam ukapirao sto se tice niza brojeva, ali ne i ovakvih, "unapred odredjenih vrednosti"
Tako da bi dobro dosla pomoc ponovo :)
[ Zoran.Eremija @ 15.07.2010. 14:42 ] @
Evo udaraca nogama :-)
Citat: laponac84: "unapred odredjenih vrednosti"
Ako funkcija RND nema neku inicijalnu vrednost tada ona vraca u zadatom trenutku istu vrednost a ako se za svaku n-torku inicijalizuje pocetna vrednost tada se postize prava slucajnost na nivou kolekcije brojeva.
[ laponac84 @ 15.07.2010. 14:49 ] @
He :-) odmah cu pogledati kako sutiraju i hvala Vam na objasnjenju :))
[ laponac84 @ 15.07.2010. 22:01 ] @
Zorane, hvala Vam, ispunio sam tabelu slucajnim podacima, cak sam i uspeo da popunim tabelu pocetnom trzisnom vrednoscu igraca, na sledeci nacin
((([Kreativnosti]+[Brzina]+[Agresivnost]+[Snaga]+[Kondicija]+[Finis]+[Sutiranje]+[Centarsut]+[Dribling]+[Dodavanje]+[Branjenje]+[IgraGlavom]+[Pozicioniranje]+[Markiranje]+[Uklizavanje])/15)*100000)-(([Godine]/40)*100000)
Prosecnu ocenu svih karakteristika (Ocena kvaliteta igraca) kojih ima 15 (po za odbranu, napad i fizicke predispozicije) pomnozim sa 100.000 eura od ceega oduzmem bodovnu vrednost godina pomnozenu sa 100.000 eura
Bodovna vrednost godina se odredjuje tako sto se ukupan broj godina podeli sa maksimalnim iznosom godina u tabeli (predvideo sam da je to cetrdeset godina) sto znaci da najvecu BODOVNU VREDNOST GODINA imaju najstariji igraci (VREDNOST 1) pa im se zato oduzima od POCETNE TRZISNE VREDNOSTI svih 100.000 evra
(Sve vrednosti koje su do sada unosene su pocetne, i trebalo bi da se menjaju iz sezone u sezonu)
Ukoliko neko ima brzi ili bolji predlog ili bilo kakav predlog, neka ostavi komentar
Hvala
[ Zoran.Eremija @ 16.07.2010. 07:26 ] @
E sada pocinje da isplivava Vas pravi problem. Svakako da bi on trebao da se dobro postavi i izmodelira. Evo za pocetak neko moje razmisljanje...
Nazivi koje ste naveli ((([Kreativnosti]+[Brzina]+[Agresivnost]+[Snaga]+[Kondicija]+[Finis]+[Sutiranje]+[Centarsut]+[Dribling]+[Dodavanje]+[Branjenje]+[IgraGlavom]+[Pozicioniranje]+[Markiranje]+[Uklizavanje] bi u stvari predstavljali NazivKarakteristike
[ laponac84 @ 16.07.2010. 07:59 ] @
Zorane, hvala na entuzijazmu :))))
Uskoro cu se javiti sa mojim vidjenjem onoga sta bih zeleo sa ovom bazom, pa da "ukrstimo koplja" (salim se malo). Vase znanje i iskustvo svakako ce mi dobro doci, da ovo sto bolje uradim(o) :)
U glavi nisam imao, da je potrebno voditi evidenciju o sezonama, tako da hvala na tome
Slazem se da je dobra plan i dobro modeliranje osnov svega, tako da cu se tu potruditi. Po meni, krajnji a mozda i najtezi problem je utakmica (kako je programski izvesti) Padale su mi neke ideje na pamet (pobedjuje ekipa koja ima bolju prosecnu ocenu) (a u prosecnu ocenu bi ulazila, prosecna ocena svih igarca, prosecan moral, prosecno zdravlje, prosecna spremnost)
Ima drugih sitnica koje sam video, al to mozemo da ostavimo za "drugu verziju" menadzera :P :) (NPR: Prilikom slucajnog upisa vrednosti karakteristika igraca, desi se da po ocenama GOLMAN ima veoma nisku ocenu za ODBRAMBENU KARAKTERISITKU, sto automatski znaci da on ne zna da brani :P, a NPR, ocene za Napadaca su mu izvanredne :) ) No na to cu se osvrnuti kad budem "sminkao" Bazu :P
PITANJE:
Da otvorim novu temu posto ce dalji rad izaci iz ove, ili da nastavim ovde ?
Pozdrav, javljam se uskoro :)
[ Zoran.Eremija @ 16.07.2010. 12:39 ] @
Da bi se nesto dobro definisalo i modelovalo treba poznavati neke od metoda kako se to radi. Preporucio bih vam knjigu mog kolege Prof dr Alempije Veljovica http://www.cafe022.com/mybb/ra...lempije-veljovic-246-t-37.html u kojoj su opisane metode i pravila razvoja nekog informacionog sistema.
[ Zidar @ 16.07.2010. 13:48 ] @
Citat: Ima drugih sitnica koje sam video, al to mozemo da ostavimo za "drugu verziju" menadzera :P  (NPR: Prilikom slucajnog upisa vrednosti karakteristika igraca, desi se da po ocenama GOLMAN ima veoma nisku ocenu za ODBRAMBENU KARAKTERISITKU, sto automatski znaci da on ne zna da brani :P, a NPR, ocene za Napadaca su mu izvanredne  ) No na to cu se osvrnuti kad budem "sminkao" Bazu :P
Ovo nikako ne spada u sminkanje baze. Ovo samo govori da postoje ralicite pzoicije na kojima igraju igraci. Za svaku poziciju postoji skup karakteristika koje tu poziciju opisuju. karakterisike za poziciju 'golman' i poziciju 'levo krilo' nikako nisu iste. Mozda ima nekih koje su iste, to ne narusava tvrdnju da su skupovi karaktreistika razliciti. To treba ukomponovati u model. Zatim, treba razdvojiti karakterisitke koje su opste za svakog sportistu i akrakteristike koje opisuju poziciju. Vizina, tezina, starost, brzina i slicno opisuju bilo kog sportistu. 'Hvatanje lopte' opisuje gorlamana u fudbalu. 'Jacina suta' opisuje i golmana i desnog beka i levo krilo, znaci svakog igraca (fudbalera?). 'Glavna noga' (leva ili desna) opisuje igraca, za golmana nije bitna verovatno. 'jacina udarca glavnom nogom' i 'jacina udarca drugom nogom' vise govori o igracu nego o golmanu.
kad jednom definises skupove karakteristika za svaku poziciju, onda u bazi moras da sprecis da igrac dobije karakteristiku koja mu ne pripada.
Ako postoje i pravila koaj definisu odnose medju karaktersitikama, onda se stvari zapetljavaju poprilicno. Onda znaci da mozda treba model potpuno promeniti. Karakteristiake koje zavise jedna od ruge ne smeju se u principu staviti u istu tabelu. Tako je teorijski, u praksi to moze biti veoma tesko da se postigne, u nekim slucajevima. Potrebno je veliko iskustvo i znanje da bi se uopste prepoznalo o cemu se radi. Nadam se da nemas takvih uslova.

[ laponac84 @ 16.07.2010. 21:27 ] @
Hvala Vam na savetima i linku
Trenutno se javljam iz meni daleke Ivanjice, pa ne mogu da prionem na problem.
Za Zidara:
sto se tice iskustva, nemam ga... pogotovo sad kada sam zapustio akses bas prilicno, pa godinu ipo dana ima da nisam nista uradio u njemu, ali eto, vratih se ja :)
Javicu se uskoro (za koji dan), pa da vidimo gde gresim sta moze da se ispravi, i da me posavetujete sta i kako ako budete u mogucnosti.
Sto se tice pozicija, to je zapetljano, slazem se. ima i golmana koji odlicno izvode slobdnjake i penale.... a i napadaca koji znaju da brane :)
Pozdrav :)
[ laponac84 @ 17.07.2010. 14:12 ] @
U kreiranju strukture baze koju sam hteo da pokazem, naisao sam na problem, hadje da nazovemo ZAKAZIVANJE UTAKMICA
Ne ide mi bas u glavu sta je pametnije da se uradi.
Postoje, Sezone, Lige sa rangovima, odigrana kola (utakmice) za datu ligu u odredjenom rangu iste lige u aktuelnoj sezoni (npr Sezona 2009/10, 1.Liga Srbije, 1. kolo) - dovde nije problem, a mozda i jeste, a da toga nisam svestan :p
Svaka ekipa mora se 2 puta sasresti sa jednom protivnickom ekipom iz Lige, jednom kao gost, a potom kao domacin (ili obratno)
Ako predpostavimo da ima ukupno 10 TIMOVA u rangu Prve lige Srbije za npr sezonu 2010, to bi znacilo sledece, da se mora odigrati 18 KOLA ukupno, odnosno da jedan tim, npr ZVEZDA ima 18 utakmica (po 9 gostujucih i isto toliko na domacem terenu)
Ono sto mi ne ide u glavu je sledece.
1. Kako "sukobiti" dve ekipe iz iste tabele, odnosno, sematski kako bi to trebalo sve da izgleda.
2. Kako napraviti raspored za celu sezonu, datog ranga neke NN lige (1. kolo, 2. kolo, 3. kolo i td ..... do 18. kolo)
3. Kako ograniciti, da u jednom rangu bude MAXIMALNO 10 timova
Do sada predvideo sam sledece tabele: Sezona, Liga, Rang, Timovi, Kolo
-----------------
tbl_Sezona:
-----------------
ID
Naziv
-----------------
tbl_Liga
-----------------
ID
Naziv
Zemlja
Sezona_ID
-----------------
tbl_Rang
-----------------
ID
Naziv
Liga_ID
-----------------
tbl_Timovi
-----------------
ID
Naziv
Rang_ID
----------------
tbl_Kolo
----------------
ID
Naziv
[ Getsbi @ 17.07.2010. 14:48 ] @
Evo ti jedan link sa susednog foruma Baze podataka. Postoji i model podataka. Nadam se da će ti pomoći.
http://www.elitesecurity.org/t...-modeliranje-lige-nekom-sportu
[ laponac84 @ 17.07.2010. 16:46 ] @
hvala :)
[ laponac84 @ 18.07.2010. 23:35 ] @
Za Zidar:
Uspeo sam da naucim golmane da brane :) (Bilo ih je nesto preko 4000 u tabeli) citao sam jednu od Vasih tema sa linka koji je Getsbi ostavio, pa sam se prisetio da kriterija u kveriju o kom je negde bilo reci, pa sam stavio update za sve GK igrace, Na isti nacin sam sprecio da mi se igrac zove "Huang Jin Krstic" ili "Milos Babangida" :)
Dodao sam jos neka polja u tabelu IGRAC, kao sto je polazna ocena igraca, sto mi je omogucilo da u startu imam "super starove" fudbala, kao i igrace sa slabuim fudbalerskim sposobnostima (na osnovu te ocene, sam im i dodeljivao raspon slucajnih vrednosti koje se update-ju u tabelu)
Tako da hvala na pomoci, tabelu sam popunio, sto mi je i bio cilj. Jedino sto je malo nezgodno, jeste nacin na koji sam to uradio, jer imam gomilu update kverija (Update za golmane, za Srbe, Korjeance, Gance, Italijane.... za superstarove, slabe, srednje, vrlodobre...)
Verujem da postoji elegantnije resenje sa manjim brojem kverija, ali ne bih bas da pritiskam, probacu sam kasnije, jer sam ostvario uz Vasu pomoc, a i Zoran.Eremija, ono sto mi je bilo cilj
I jedno podpitanje za Vas
Ponovo sam procitao Vas post, pa nisam siguran da li sam dobra razumeo. Vi mi preporucujete da u zasebne tabele cuvam evidentirane Golmane, Odbrambene igrace, Napadace.... ? ili pak samo da odvojim Karakteristike od tebele Igraci u zasebnu tabelu ?
---------------------------------
Za Getsbi:
Hvala jos jednom za link, naleteo sam i na probleme o kojima nisam razmisljao (kartoni, sudije, jedan tim se samo jednom mora pojavljivati u istom kolu...) tako da sam ih sada uzeo u obzir :) Pa cu probati da se snadjem, za sada jos uvek se drzim rasporeda utakmicea u menadzeru
---------------------------------
Za Zoran.Eremija:
Tek sada sam video da u Vasoj zadnjoj poruci postoji prikacen fajl, pogledacu Vas savet i hvala :)
[ laponac84 @ 19.07.2010. 17:22 ] @
Napravio sam semu (U prilogu, ne znam da je postavim ovde, da bude vidljiva)
Bilo bi super, ako ima nekih preporuka ili ispravki
Procitao sam sve sa linka koji je Getsbi ostavio, nadam se da sam predvideo sve mogucnosti i da je baza koju sam okacio OK
Napravio sam je uz pomoc kombinatorike, koju mi je pokazao Zoran.Eremija
Napravio sam dva kverija iste sadrzine, stavio ih u novi kveri, napravio kombinacije sa uslovom da se ID_PrveKolone (Domacina) mora razlikovati od ID_DrugeKolone (gosta) i od 100 mogucih kombinacija u prvom slucaju, spao sam na 90 ako se ne varam ispravnih.
Hvala u napred
[Ovu poruku je menjao Getsbi dana 19.07.2010. u 18:48 GMT+1]
[ Zidar @ 19.07.2010. 21:03 ] @
Laponac, vidim da se lepo zabvljas :-)
Medjutim, izabrao si suvise komplikovanu temu za zabavu i ucenje. Realni sistemi se dale na manje, da bi mogli da uopste funkcionisu. takodje, postoje i stvari koje se ne mogu resiti na zadovoljavajuci nacin u relacionim sistemima. Svega toga ima pomalo u ovome s cim se igras.
Ne mozemo da ti odgovorimo na svako pitanje, jer neka pitanja nemaju konacan odgovor (relacioni sistemi se s njima muce) a neka zahtevaju previsok nivo predznanja i iskustva. A mnoge stvari koje pokusavas da resis kroz bazu podatka lepo se rade i na listu papira ili u Excelu.
Recimo prica o liga takmicenju, utakmice, parovi, i slicno; jako je komplikovana za rad u recimo Accessu i verovatno nigde na svetu ne postoji sistem koji radi bas onako kako sam opisao. Bio je jedan u Amesbury Sports Club u Torontu, za klince koji igraju baseball leti i hockey zimi. Medjutim je sistem zamnejn drugim koji nema tako kvalitetnu bazu za pracenje rezultata, ali ima za sve ostalo, i radi na internetu, za malu naknadu godisnje ili mesecno, u celini pomaze vise nego moja Access bazica :-)
Sve lige u Evropi su to radile do juce pomocu olovke i papira. Ako liga ima 18 klubova, to je 9 utakmica po kolu. Koliko je tesko da se rucno odrzava tabela? E kad bi neko vodio 54 lige u 8 sportova istovremeno, to je druga prica. Ima i to, onaj program koji je izbacio moju Access bazu iz upotrebe. Pokriva celu USA i Kanadu i SVE decije lige ga koriste. Sitem sedi na nekom serveru negde u Kaliforniji ili Oregonu, ko zna gde, i svi mu pristupaju preko interneta i svi vide samo ono sto im treba.
Ovo sto radis, uveliko prevazilazi ono sto u ovom momentu znas, i dalja diskuija tesko da ce biti produktivna.
Promeni temu, pa da se zabavljamo dalje.
:-)
[ laponac84 @ 19.07.2010. 22:03 ] @
Ok, primetio sam da je i na onoj Getsbi-jevoj temi, zakocilo oko utakmica po kolima. Ja sam se taman zaradovao, da je ovo sto sam uradio kul, pa sam video da je problem napraviti to isto, sa nekim hronoloskim rasporedom.... pa sam obrnuo da vidim kako se to radi uz pomoc papira i olovke, kod mene u klubu, i nasao sam Bergerove tablice (koje sada simuliram iz nekoliko apend i uddate kverija) korak po korak (kolo po kolo - 9 kola)
Evo zbog cega
Meni je glavni problem ovde bio, da sa sto manje truda (rucnog unosenja) popunim tabele polaznim vrednostima (Nigde nisam mogao naci bazu sa igracima da exportujem u tabelu, nigde nisam mogao naci bazu sa klubovima i ligama za istu svrhu) a tek je problem uneti sve to u tabelu red po red... pa sam se uhvatio princima, sto mora na snagu, kad moze na pamet :P
Kad sam krenuo, nisam ni bio svestan, da sam se bas dohvatio za tesku temu... no dobro, obnovio sam dosta toga, i naucio jos sto sta novo...
Ostalo mi je jos malo da popunim zeljenu kolicinu podataka u bazu... pa cu dalje sam da vezbam... videh jos neke stvari na guglu
Hvala jos jednom :))
[ Zidar @ 20.07.2010. 14:48 ] @
Imas na forumu Baze Podataka top teme 'Mozgalice' Mislim da je jedna od njih u vezi sa upravo sa liagskim takmicenjem. Ukucaj 'bergerove tablice' i pretrazi 'ovaj forum' i trebalo bi d ate odvede do diskusije gde smo pokazali kako se pravi raspored za ligu i kako se kverijim iaracunava tabela.
Bergerove tablice ti rade po ovom proncipu:
Podeli timove u dve grupe i napsisi ih jednu ispd druge. Za 8 timova to izgleda ovako:
1 2 3 4
5 6 7 8
Sada zamisli da '1' stoji u mestu a da se ostali brojevi rotitaju u izabranom smeru. Rotiraj brojeve dok ne dobijes pocetni raspored.
1 3 4 8
2 5 6 7
1 4 8 7
3 2 5 6
1 8 7 6
4 3 2 5
1 7 6 5
8 4 3 2
1 6 5 2
7 8 4 3
1 5 2 3
6 7 8 4 -- stop ovde, jer sledeca iteracija daje pocetni raspored.
Eto ti rasporeda gde svako igar sa svakim tacno jednom, svaki tim se u svakom kolu pojavljuje tacno jednom. Ako hoces da imas goste i domacine, onda u svakoj uzastopnoj iteraciji (kolu) promenis mesta gornjoj i donjoj grupi timova.
Ovo mozes lako da isprogramiras, pa pozoves kad ti zatreba. Ili rucno napravis slucajeve koji te interesuju. Tako je uradio Berger, pa ostavio tblice za 10,12,14,16,18,20 timova koje svi danas koriste i ne razmisljaju kako se do toga doslo. Uoci da su sve tablice za paran broj timova. Kad imas neparan broj timova, dodas jedna da napravis paran. Ako si imao 9 timova, pa dodas broj 10, ko god igra u nekom kolu sa timom '10' taj je u stvari slobodan.
[ laponac84 @ 20.07.2010. 21:32 ] @
Uspeo sam sto sam naumio... osecam da ce negde sigurno da zaskripi, elem nije netsto ali sljaka...
Podatke u tbl_Utakmice upisujem iz zadnjeg App.Q koji sam naveo, a kreiram ga od dva sledeca
----------------------------
qs_Kolo_BergerQ (Pravi raspored po podacima iz Bergerove tablice koje cuvam u tabeli)
----------------------------
SELECT tbl_Kolo.ID_KOLO, tbl_Kolo.KoloBroj, tbl_Kolo.Datum, tbl_Kolo.Rang_ID, tbl_Bergerovo_pravilo.Domacin, tbl_Bergerovo_pravilo.Gost
FROM tbl_Kolo LEFT JOIN tbl_Bergerovo_pravilo ON tbl_Kolo.ID_KOLO = tbl_Bergerovo_pravilo.Kolo;
----------------------------
qs_Liga_Sezona (Spisak liga sa rangovima po sezonama)
----------------------------
SELECT tbl_Sezona.ID_SEZONA, tbl_Sezona.Sezona, tbl_Liga.ID_LIGA, tbl_Liga.NaizvLige, tbl_Liga.Sezona_ID, tbl_Rang.ID_RANG, tbl_Rang.Naizv, tbl_Rang.Liga_ID
FROM (tbl_Sezona INNER JOIN tbl_Liga ON tbl_Sezona.ID_SEZONA = tbl_Liga.Sezona_ID) INNER JOIN tbl_Rang ON tbl_Liga.ID_LIGA = tbl_Rang.Liga_ID;
------------------------------
Append Query: qa_Utakmice upisuje podatke u tabelu utakmica
------------------------------
INSERT INTO tbl_Utakmice ( Kolo_ID, Kolo, Rang_ID, Domacin_ID, Gost_ID )
SELECT qs_Kolo_BergerQ.ID_KOLO, qs_Kolo_BergerQ.KoloBroj, qs_Kolo_BergerQ.Rang_ID, qs_Kolo_BergerQ.Domacin, qs_Kolo_BergerQ.Gost
FROM qs_Liga_Sezona INNER JOIN qs_Kolo_BergerQ ON qs_Liga_Sezona.ID_RANG = qs_Kolo_BergerQ.Rang_ID;
Polja GOST_ID, DOMACIN_ID u tbl_Utakmice, sam postavio kao combo box, u koji se upisuje broj iz Bergerove tablice preko App.Q a prikazuje se Ekipa koja odgovara tom rednom broju.
Nije nesto savrseno... sto bi se reklo na misice je, naci cu jos nesto korisno kod vas na ES pa cu usavrsiti 
[ laponac84 @ 24.07.2010. 20:37 ] @
Forma (tabelarni prikaz) ima izvor podataka iz tabele tbl_Utakmice (ID, Datum, Vreme, Domacin_ID, Gost_ID)
Polja Domacin_ID i Gost_ID su vredosti polja ID_TIM iz tabele tbl_Tim koje sam predhodno uz pomoc Bergerove tablice upisao u tbl_Utakmice
Do sada sam ova dva navedena polja (Domacin_ID i Gost_ID) u formi prikazivao iz combo boxa, ali to je resenje koje kvari vizuelno pregled kola, i zbunjuje pri otvarajnu padajuce liste.
Potrebno mi je da u polju tabele, npr Txt_14 prikazem naziv tima koji je domacin (na osnovu Domacin_ID vrednosti), odnosno Txt_15 da prikazem naziv gostujuce ekipe (Na osnovu Gost_ID vrednosti)
[ Zoran.Eremija @ 24.07.2010. 20:44 ] @
Mnogo bi brze i lakse bilo da se pomogne ako bi ste okacili vas primer
[ laponac84 @ 24.07.2010. 20:52 ] @
evo primera
[ Zoran.Eremija @ 24.07.2010. 21:03 ] @
Da li je ovo to sto ste hteli?
[ laponac84 @ 24.07.2010. 21:17 ] @
Jeste, hvala :)
[ laponac84 @ 28.07.2010. 16:39 ] @
Dobio sam prvoe pobednike liga u menadzeru :))) U nasoj ligi je to OFK Beograd ... :p
Nego, na problem da se vratim
1. Napravio sam formu za tabelu, (odlicno prikazuje po ligama, raspored ekipa...) ali bez broja koji oznacavaju trenutni plasman timova.
(Predhodno sam vec prelistao neke teme sa rednim brojevima, ali nesto bas ... ne stima)
okacio sam deo baze sa tabelom koji prati upite i formu
a za ostalo, kasnije... :)
[ Zoran.Eremija @ 28.07.2010. 17:11 ] @
Ako sam dobro razumeo da li ste na ovo mislili?
[ laponac84 @ 28.07.2010. 17:47 ] @
Hvala, jeste :)
Javljam se uskoro, probacu jos jednom sam da resim oko prelaska iz viseg u nizi rang i obratno... na kraju sezone
[ laponac84 @ 28.07.2010. 20:11 ] @
Kako iz svake lige (10 timova po ligi) izdvojiti prva dva tima koja idu u visi rang, ili zadnja dva koja idu u nizi rang, ili 3 i 4 tim koji idu u neki kup ?
[ laponac84 @ 28.07.2010. 20:29 ] @
Ispustih ono najbitnije.
Tabela Tim. u svom sklopu ima polje RANG (1 ili 2 posto za sada imam dva nivoa takmicenja po ligama) Tim koji ide u visi rang, treba da svoju oznku 2 promeni u 1, a tim koji ide u nizi, obratno, oznaku 1 u 2
[ Getsbi @ 29.07.2010. 05:07 ] @
Citat: laponac84: Kako iz svake lige (10 timova po ligi) izdvojiti prva dva tima koja idu u visi rang, ili zadnja dva koja idu u nizi rang, ili 3 i 4 tim koji idu u neki kup ?
Koristi klauzulu TOP n u SQL-u. Za prva dva u ORDER BY ne moraš da koristiš ništa (opciono Ascending) iza polja po kojem ređaš klubove. Za zadnja dva u ORDER BY, obavezno koristi Descending iza polja po kojem ređaš klubove. Za 3. i 4., nadam se da je jasno iz prethodnog. Izvadiš prva četiri, a onda zadnja dva iz te četvorke.
Ovo podrazumeva da imaš izvor podataka za "Stanje na tabeli" koristeći rezultate iz tabele odigranih utakmica.
[ Getsbi @ 29.07.2010. 14:20 ] @
Spojio sam četiri skorije pokrenute teme koje se tiču pokretača Laponac84 i njegovog rada na istom projektu. Nadam se da će ovako biti lakše za ispratiti ovaj zanimljivi projekat. 
[ laponac84 @ 29.07.2010. 17:08 ] @
Hvala :)
Negooo....
uradio sam kako ste mi preporucili
stavio sam opciju TOP 2, i napravio kveri za svaku ligu posebno (svakoj sam dodao opciju ENG-1, ENG-2, SER-1... i sl) i desilo mi se da sam bas na zadnjem kveriju koji sam pravio (ENG-2 ... engleska druga liga) video tri kolone koje se prikazuju, sve sa istim brojem bodova :)))))
Tako da sam naleteo na nov problem, a to je kako da gol razliku (koju vec racunam) da ukljucim u rangiranje klubova na tabeli ?
[ Getsbi @ 29.07.2010. 19:30 ] @
Pošto nisi zakačio queryje, onda ću napamet samo da dam predlog. Ukoliko već imaš izračunatu gol razliku, samo tu kolonu uključi u GROUP BY. Tako će tri zapisa sa istim rangom da budu poređana onako kako treba.
[ laponac84 @ 29.07.2010. 20:18 ] @
ne ide mi, evo okacenog primera sa dodatim upitima
[ Getsbi @ 30.07.2010. 03:02 ] @
Ne mogu da se snađem sa tvojim query-jima. Klauzula TOP n, ne može da vrati više od n zapisa ako je redosled u GROUP BY pravilno postavljen. U donjem primeru je to: tblStanjeNaTabeli.BrojBodova DESC , tblStanjeNaTabeli.GolRazlika DESC. Znači: ko ima najviše bodova i u okviru toga ko ima veću gol razliku.
Generalna primedba je, da se iz tvoje tabele "tbl_Utakmice" nemože jednostavno doći do naziva tima koji je igrao u određenom kolu. Verovatno je to posledica drugog .mdb-a kojim si punio tabelu "tbl_Utakmice" po Bergmanovom principu. Po meni bi trebalo da ti tabele "tbl_Tim" i "tbl_Utakmice" budu povezane jedan prema više. Da sam na tvom mestu, ograničio bih se na jednu ligu i queryje bih pravio postupno, tako da jedan drugom budu izvor podataka. Otprilike kako je Zoran Eremija to pokazao u temi "Mozgalica: Poređenje dve tabele".
[ laponac84 @ 30.07.2010. 19:49 ] @
Citat: Getsbi: Ne mogu da se snađem sa tvojim query-jima. Klauzula TOP n, ne može da vrati više od n zapisa ako je redosled u GROUP BY pravilno postavljen. U donjem primeru je to: tblStanjeNaTabeli.BrojBodova DESC , tblStanjeNaTabeli.GolRazlika DESC. Znači: ko ima najviše bodova i u okviru toga ko ima veću gol razliku.
Generalna primedba je, da se iz tvoje tabele "tbl_Utakmice" nemože jednostavno doći do naziva tima koji je igrao u određenom kolu. Verovatno je to posledica drugog .mdb-a kojim si punio tabelu "tbl_Utakmice" po Bergmanovom principu. Po meni bi trebalo da ti tabele "tbl_Tim" i "tbl_Utakmice" budu povezane jedan prema više. Da sam na tvom mestu, ograničio bih se na jednu ligu i queryje bih pravio postupno, tako da jedan drugom budu izvor podataka. Otprilike kako je Zoran Eremija to pokazao u temi "Mozgalica: Poređenje dve tabele".
Slazem se da je tabela konfuzna (Hvala na savetu, nisam pogledao temu, ali upravo cu to uraditi)
Pogledao sam bazu koju ste okaacili, i izmenio kod mene u bazi, i daje rezultate (trenutno se necu osvrtati i na mogucnost da je pored bodovne i gol razlika jednaka )
Trenutno samo u njoj se nalaze neka polja, koja sluze meni samo da bih lakse pratio sta se desava, evo objasnjenja (sve podatke drzim u jednoj bazi, koja je sada poveca, jer imam 65000 igraca sa dosta razgranatim karakteristikama....) bazu na forum kacim parcijalno, samo deo koji je neophodan za resavanje problema koji bih zeleo da resim
Kada sam krenuo ovo da radim, nije bio problem prikazati sve utakmice iz jedne zemlje, ili jedne lige, ili ranga, ali.... svaka liga ima svoje sezone.... menjaju se timovi iz sezone u sezonu, i nekako bi trebalo sacuvati sve te podatke za pracenje nekog tima... pa sam pored vec obicnog ID-a (autonamber) uveo jos jedan, sezonski, koji se sam kreira, na osnovu toga koja sezona je u pitanju, koja zemlja, koji rang, koje kolo je u pitanju, koji tim je u pitanju... tako sam izbegao da mi se mesaju rezultati po sezonama
rec je o polju "SIF_SEZ_LIG_RNG_KOL" u tabeli tbl_Utakmice i on sadrzi sledecu informaciju:
NPR " 1-SER-1-1" znaci da je to " PRVA SEZONA - SRBIJE - PRVE NJENE LIGE - PRVO KOLO " (Ostala polja slicne sadrzine, govore isto, kraca ili duza..., njih cu kasnije izbrisati jer se podaci koji ona sadrze, lako dobijaju u kveriju citanjem polja "SIF_SEZ_LIG_RNG_KOL" u tabeli tbl_Utakmice
Ovo ce mi kasnije koristiti za tekstualnog komentatora koga planiram na kraju da napravim, koji ce znati odmah na pocetku da napise: "Postovani gledaoci, danas je (datum dodeljen kolu putem kverija, zavisno od vremena odigravanja sezone) Dobrodosli na utakmicu Prvog kola, Jelen super lige, utakmica je pocela u (navedeno vreme utakmice koje dodeljujem pri zrebanju iz tbl_Berger_10), a sastaju se timovi.... " Dobro, pocetak i kraj za sada znam da procitam :))) a ostalo cu smisliti :))))
dakle sve mi se vrti oko tog polja "SIF_SEZ_LIG_RNG_KOL" u tabeli "tbl_Utakmice", a polje ID koje se standarndno primenjuje svuda, ce imati znacaja kod vadjenja rezultata ranijih sezona za odredjeni tim, odredjenu zemlju, ili menadzera ...
---------------------------------------------------
PITANJE:
---------------------------------------------------
Da li je plasmane timova u nekoj tabeli, bolje prikazivati u kveriju, nego na formi ?
Ako jeste, kako se to radi.
Obrazlozenje pitanja:
Ako sam ja menadzer, i zelim da pogledam podatke nekog tima na tabeli... kliknucu na njega, otvorice m ise forma, na kojoj osim istorijskih podataka, maticnih podataka, broja navijaca.... treba da pise i plasman u okviru lige u kojoj se takmici, ili takmicio
---------------------------------------------------
Ostalo je jos par sitnica, koje su mi u glavi, a nemam resenja za njih trenutno, da bih mogao da ovo do sada navdeno kroz temu povezem sa igracima, i krenuo da kreiram simulaciju utakmice, ovi dosadasnji rezultati koje imam u tabeli su uneseni po slucajnom principu koji sam naucio od ZORAN.EREMIJA :)))
[ Zoran.Eremija @ 30.07.2010. 20:06 ] @
Citat: laponac84:
---------------------------------------------------
PITANJE:
---------------------------------------------------
Da li je plasmane timova u nekoj tabeli, bolje prikazivati u kveriju, nego na formi ?
Ako jeste, kako se to radi.
Svakako da je bolji prikaz u Formi a Vas Query koji biste prikazivali stavite da Vam bude RecordSource u toj formi...
[ laponac84 @ 30.07.2010. 20:21 ] @
Nisam siguran da sam Vas razumeo, odnosno Vi mene :P
Da pojednostavim na primeru:
Posmatram formu na kojoj se prikazuju podaci od ekipe CRVENA ZVEZDA i na njoj vidim
Prvu sezonu je zavrsila na prvoj poziciji neke NN lige
Drugu sezonu je zavrsila na 7-oj poziciji
Trecu na drugoj
Cetvrtu na prvoj
petu...
U tekucoj sezoni zauzima poziciju broj 3
Zbog takvih podataka sam postavio pitanje
[ Getsbi @ 30.07.2010. 20:37 ] @
......(trenutno se necu osvrtati i na mogucnost da je pored bodovne i gol razlika jednaka ).....
Onda valjda ide žreb.
Slažem se sa Zoranom da query treba da bude samo izvor podataka za neku formu koja neće moći da se ažurira ili još bilje za izveštaj koji ćeš da pokrećeš po potrebi
[ laponac84 @ 31.07.2010. 01:38 ] @
Citat: Getsbi: Slažem se sa Zoranom da query treba da bude samo izvor podataka za neku formu koja neće moći da se ažurira ili još bilje za izveštaj koji ćeš da pokrećeš po potrebi
Citat: Zoran.Eremija: Svakako da je bolji prikaz u Formi a Vas Query koji biste prikazivali stavite da Vam bude RecordSource u toj formi...
OK, nemam problema sto se toga tice, sve forme koje sam uradio, za podlogu, RecordSource, imaju Query, pogotovo zato sto Menadzer aplikacija koju pravim ne sema da dozvoli bilo kakavu rucnu izmenu podataka, jer bi to uticalo na regularnost....
Od prilike sam postigao ono sto sam zeleo sa ovim delom fudbal menadzer aplikacije, sada cu se baciti malo na sredjivanje (brisanje nepotrebnih polja, uvodjenje liga sa 15, 16 ... 20 timova, cisto da bi meni ovo ucinio boljom vezbom :)
vizuelno gledano (korisnicki) sistem menadzera sam osmislio na sledeci nacin
po deset timova u oba ranga po ligama, po 15 timova u kontinentalnim ligama, i 20 timova u svetskoj ligi (Ovaj deo sa kontinentalim ligama i svetskom ligom cu nesto kasnije dodati, u nazovimo drugoj verziji aplikacij :P )
Posle sredjivanja, sleduje mi onaj tezi deo, a to je simulacija takmicenja... imam ideju kako bi to trebalo da izgleda, i nadam se da ce raditi :)
Dotle, ako uhvatim neko problemce, zovem u pomoc :)))
[ laponac84 @ 01.08.2010. 15:26 ] @
Ne uspevam nikako da napravim prelazak iz nizeg u visi rang i obratno, za prve dve, odnosno zadnje dve ekipe
u tabeli tbl_Timovi, postoji polje Rang (za sada ima samo vrednosti 1 i 2, prva i druga liga). napravio sam po vasim uputstvima query-je koji pokazuju prvoplasirane ali ne upsevam da iste prebacim u visi rang (da broj 2 zamenim brojem 1 u navedenoj koloni Rang u tbl_Timovi) probao sam sa Update query, ali ne mougu da koristim opciju TOP...
ima li neko ideju kako bih to mogao da sporvedem ?
[ Getsbi @ 01.08.2010. 16:19 ] @
Tačno je da su neki query-ji needitabilni. Zato se posluži satrim programesrskim štosem. Napravi privremenu tabelu. Kako?
Prvo od tvog SELECT TOP n query-ja napravi novu tabelu sa opcijom MakeTable Query. Sada imaš novu privremenu tabelu sa dva zapisa.
Code: SELECT qryPobednici.ID, qryPobednici.NazivTima INTO privremena
FROM qryPobednici;
Nju upotrebi za pravljenje Update query-ja sa kriterijumom koji želiš.
Code: UPDATE tblStanjeNaTabeli INNER JOIN privremena ON tblStanjeNaTabeli.ID = privremena.ID SET tblStanjeNaTabeli.Rang = 1;
Evo ti primer. Primeti prvo da jedina tabela tblStanjeNaTabeli sadrži vredost 2 u koloni rang za sva tri tima. Nakon toga pokreni query "NapraviNovu". Pogledaj sad broj tabela. Potom pokreni query "Prelazak u rang 1"
[Ovu poruku je menjao Getsbi dana 01.08.2010. u 17:40 GMT+1]
[ laponac84 @ 02.08.2010. 10:51 ] @
Zreb za novu sezonu
Na pocetku svake sezone trebalo bi obaviti zreb za raspored igranja utakmica po Bergerovom pravilu. Sto znaci timovima u svakoj ligi treba dodeliti brojeve od 1 do N (N je ukupan broj timova u ligi) u mom slucaju to je deset (naravno bez ponavljanja)
Probao sam
Code: UPDATE tbl_Tim SET tbl_Tim.Berg_Broj = Int((10-1+1)*Rnd([ID_TIM])+1)
WHERE (((tbl_Tim.Rang)=1) AND ((tbl_Tim.Zemlja)="ENG"));
Dobio sam brojeve koji se ponavljaju
a probao sam i
Code: UPDATE tbl_Tim SET tbl_Tim.Berg_Broj = Int(10-1)
WHERE (((tbl_Tim.Rang)=1) AND ((tbl_Tim.Zemlja)="ENG"));
dobio sam samo devetke
Kako da da postignem da svaki tim u okviru lige dobije svoj jedinstveni bergerov broj u zrebu, na osnovu koga se uz pomoc tablice koju cuvam u tabeli baze, pravi raspored utakmica (Ne moraju biti po redu uneseni od 1 do 10)
[ Getsbi @ 02.08.2010. 12:31 ] @
Ovaj primer koristi funkciju Rnd za generiranje vrednosti slučajnog celog broja od 1 do 10.
Dim pozicija As Long
pozicija = Int((10 * Rnd) + 1)
Ako ti se dešavaju ponavljanja, moraćeš da zavrtiš tabelu u While petlji i puniš je proveravajući jedinstvenost zapisa.
Inače, svako žrebanje na osnovu kompjutera učesnici smatraju varkom. Otuda valjda i danas javno izvlačenje brojeva (kglica iz posude). 
[ Getsbi @ 02.08.2010. 13:25 ] @
Ovo gore navedeno svakako ne može preko Update query-ja, već pomoću VBA koda. Kako se ažurira tabela pomoću VBA koda, ima primer u Top temi "Često postavljana pitanja":
2) Kako pomoću VBA koda popuniti jednu tabelu na osnovu podataka druge:
http://www.elitesecurity.org/t...odateke-iz-jedne-tablice-drugu
Odatle možete iscrpeti osnovna znanja kako se to radi.
[ laponac84 @ 02.08.2010. 13:38 ] @
Hvala :) pogledacu
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|