[ bobiris @ 27.07.2003. 16:45 ] @
Prica je ovakva:

Saberem tri razlicita vremena peske (rucno, na papiru, ili iz glave): 10:45, 10:45 i 10:45. To je 32 sata i 15 minuta, i to je tacno. Medjutim, sa onim sto sam ja uradio:

Sum(Hour(rezultati.vreme))+Sum(Minute(rezultati.vreme)/60) As SvegaVreme

ja dobijem 32 sata + 25 minuta, sto nikako ne valja!! Ako opet izostavim ono "/60", onda dobijem rezultat = 165 sati. Ako sve pretvorim u minute:

Sum(Hour(rezultati.vreme)*60)+Sum(Minute(rezultati.vreme)) As SvegaVreme

Dobijem 1800 minuta + 135 minuta, pa kada to podelim sa 60, opet dobijem 32 sata i 25 minuta. To je ustvari 32 sata i 1/4 od 100, ali meni treba 1/4 od 60, sto je 15.

Iz odredjenih razloga, ceo rezultat bih trebao da dobijem pomocu SQL iskaza, jer se tako dobijen rezultat u istom Query-u koristi za rangiranje rezultata.

Ako ne moze pomocu SQL iskaza, onda molim za pomoc kako da pocnem (i napisem) kod u Accesu da bih dobio ispravno vreme, i gde da ga stavim (OnLoad, OnCurent...)

Sve ovo mi je veoma hitno, treba da isporucim, a rezultati nisu tacni.

Kako da dobijem ispravan rezultat?

Unapred zahvalan
Otac 6-oro dece...
[ mladenovicz @ 27.07.2003. 17:11 ] @
Selektuj kao minute (tako ce ti i sortiranje raditi), a kad prikazujes taj podatak sate dobijes kao rezultat celobrojnog delenja broja minuta sa 60, a minute dobijes kao ostatak prilikom tog istog deljenja.
[ bobiris @ 27.07.2003. 17:22 ] @
Citat:
bobiris:
Ako sve pretvorim u minute:

Sum(Hour(rezultati.vreme)*60)+Sum(Minute(rezultati.vreme)) As SvegaVreme

Dobijem 1800 minuta + 135 minuta, pa kada to podelim sa 60, opet dobijem 32 sata i 25 minuta. To je ustvari 32 sata i 1/4 od 100, ali meni treba 1/4 od 60, sto je 15.


Ili te nisam razumeo?
[ degojs @ 27.07.2003. 17:35 ] @
Ne dobivaš 32 sata i 25 minuta nego 32.25 sati, a to je tačno 32 sata i 15 minuta.

Za dobivanje sati i minuta iz minuta koristi \ (celobrojno deljenje) i MOD (ostatak celobrojnog deljenja).
Npr.
Code:
Sati = 1935 \ 60     ' daje 32
Minute = 1935 MOD 60     ' daje 15




[Ovu poruku je menjao degojs dana 27.07.2003. u 11:37 GMT]
[ mladenovicz @ 27.07.2003. 17:36 ] @
Sati=SvegaVreme\60
Minuti = (SvegaVreme mod 60)

/edit: degojs je bio brzi

[Ovu poruku je menjao mladenovicz dana 27.07.2003. u 17:41 GMT]
[ degojs @ 27.07.2003. 17:38 ] @
mladenovicz
[ bobiris @ 27.07.2003. 21:13 ] @
Hvala Degojs, hvala Mladenovitz!

To je to sto mi treba. Uradio sam malo nezgrapno:

SELECT rezultati.clan_ID, Sum(Hour(rezultati.vreme)*60)+Sum(Minute(rezultati.vreme)) AS Svega, [Svega]\60 AS Sati, ([Svega] Mod 60) AS Minuti, Sati & ',' & Minuti AS SatMin, [SatMin]+Sum(rezultati.bodovi) AS Sum2002Sen

ali radi, i rezultati su ispravni, sto je najvaznije!




Degojs, jos me muci jedna stvar, a to ima veze sa onom tvojom funkcijom za izracunavanje Rang Liste. To sve izvrsno funkcionise, ali imam jedan drugi problem:

U toku izvrsavanja koda u VB-u, gde dodajem bodove ako je neko osvojio prvo ili drugo mesto (sto odredjuje tvoja funkcija "reset counter" u Query-ju PRE nego tabela koju je Queri napravio "udje" u Formu), vrednosti u tabeli se menjaju, i ona u momentu kada treba sve da sumira i izbaci rezultat, nije vise sortirana "desc" po polju "Sum2002Sen", sto je preduslov da bi funkcija ispravno odradila posao koji meni treba.

Pitanje:

Da li postoji nacin da se takva tabela po zavrsetku koda, a pre prikazivanja rezultata, jos jednom sortira "desc" po pomenutom polju, pa onda da se primeni tvoja funkcija, tako da rezultati odgovaraju osvojenom mestu?

Ovako mi se dogadja da rezultat od, recimo, 56 bodova bude na trecem mestu, a rezultat od 44 boda bude na prvom (jer funkciju pozivam jos jednom po zavrsetku koda, a pre prikaza rezultata. Ako ne uradim tako, rezultati odgovaraju brojevima koje je tvoja funkcija odradila, ali redosled onda nije ispravan. Naime, ide prvo "Mesto 3", pa "Mesto 1", pa "Mesto 5" itd...)

Uh, nadam se da sam bio jasan.
[ degojs @ 27.07.2003. 23:54 ] @
Ne razumem uopšte..
Pa možeš li da sortiraš po određenom polju (SELECT... FROM... ORDER BY polje DESC;) ? Ili da opet izvršiš onaj SELECT ... INTO query?

[ bobiris @ 28.07.2003. 00:14 ] @
Pokušaću bolje da objasnim.

Sve se događa na početku završne forme (OnLoad). Podaci stoje u fizičkoj tabeli, koja je pre otvaranja sortirana po određenom polju. Vb kod dodaje bodove na nekim mestima, gde treba, i onda je priča završena. Na kraju petlje sledi tvoja funkcija koja zatiče tabelu u NEsortiranom stanju, i tako i odradi. Probao sam da napravim Query koji će tabelu ponovo sortirati (Select * from RangTable INTO RangTable). Naravno, ne može, pošto se radi o istoj tabeli. Probao sam da sve to stavim u drugu tabelu, to može, ali onda bih nekako trebao da prekinem radnju, zatvorim (još ne otvorenu) formu, i pozovem drugu formu, koja bi koristila tu novonapravljenu tabelu (prethodno sortiranu). Onda bih nad tom tabelom primenio tvoju funkciju, i to bi bilo u redu. Možda tako i može, ali ne znam kako da prekinem otvaranje forme po završetku koda koji menja podatke, da bih mogao da pozovem drugu, sa novonapravljenom tabelom kao Source.

Ne znam da li sam sada uspeo da ti dočaram problem.