[ srdrazic @ 26.12.2013. 18:04 ] @
Zna li neko gde bih mogao pročitati neku temu ili neko da mi pomogne da pokušam rešiti problem rangiranja zapisa prema bodovanju iz kolone CIC.

Pokušavam neko vreme ali ne ide.

Treba da složim zapise prema kriterijumu:

Vrsta VrTrofeja CIC Rank

Medved Krzno 300 1
Medved Krzno 298 2
Medved Krzno 266 3
Medved Krzno 259 4
Medved Lobanja 78 1
Medved Lobanja 69 2
Medved Lobanja 58 3
Medved Lobanja 55 4
Srna Rogovlje 160 1
Srna Rogovlje 156 2
Srna Rogovlje 156 2
Srna Rogovlje 154 3
Srna Rogovlje 128 4
Srna Rogovlje 110 5


Problem je što ja dobijam Rank: Descending a treba Ascending i
CIC- Bodovi koji se ponavljaju treba da se rangiraju istim brojem.
[ FOX028 @ 26.12.2013. 18:29 ] @
moze li ovako nesto
[ srdrazic @ 26.12.2013. 18:42 ] @
Prvo da pozdravim kolegu FOX028.

Nisam baš tako mislio ali evo i slikom šta je problem.
[ savkov @ 26.12.2013. 23:42 ] @
Ovako?

[Ovu poruku je menjao savkov dana 27.12.2013. u 00:54 GMT+1]
[ srdrazic @ 27.12.2013. 06:38 ] @
Dobijao sam i ja taj redosled od 1 do 4 ali nije moguće da najveći broj ocenjenih bodova, za određeni trofej,bude na četvrtom mestu, je li tako?
[ captPicard @ 27.12.2013. 12:17 ] @
Evo:

Code:
SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(Trofejni.cic) FROM
Trofejni As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic <= Trofejni.cic) AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC asc, Trofejni.Lovac;


Trofejni.CIC asc
[ captPicard @ 27.12.2013. 12:19 ] @
Pogriješio sam gore, krivo gledam.
[ captPicard @ 27.12.2013. 12:26 ] @
Je to to?



Code:
SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(Trofejni.cic) FROM
Trofejni As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic >= Trofejni.cic) AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC desc, Trofejni.Lovac;


[ captPicard @ 27.12.2013. 12:28 ] @
Ili ovako da maknemo onu nulu na početku:

Code:
select * from(
SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(Trofejni.cic) FROM
Trofejni As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic >= Trofejni.cic) AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC desc, Trofejni.Lovac) where rank <> 0
[ srdrazic @ 27.12.2013. 13:19 ] @
U suštini je to, međutim ostaje problem oko redosleda mesta kod istog broja bodova;
pa tamo kod Rogovlje: imamo redosled 1,3,3,4,5,6 umesto 1,2,2,3,4,5,6
Kada dodam polje "medalja" desi mi se opet neki mix, ali to i neće biti problem.
[ captPicard @ 28.12.2013. 10:46 ] @
U principu to je točno, jedno prvo mjesto i dva druga mjesta, medalje za treće mjesto nema, slijedeći je četvrti. Ali probati ču ti složiti za taj način kako ti želiš.
[ srdrazic @ 28.12.2013. 11:35 ] @
Pokušavam i ja nešto slično ali mi ne ide, ukoliko se pojavi još jedna ista vrednost kao u mom slučaju 156 onda redosled ide 1,4,4,4,5,6
ima sličan primer ovde http://support.microsoft.com/kb/120608 u trećem primeru, ali ga ne znam odraditi preko sql-a, negde grešim.
[ captPicard @ 28.12.2013. 14:27 ] @
Evo:

Code:
SELECT *
FROM (SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(Trofejni.cic) FROM
Trofejni As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic > Trofejni.cic) + 1 AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC desc, Trofejni.Lovac)
WHERE rank <> 0;

[ captPicard @ 28.12.2013. 15:29 ] @
I opet nisan dobro gledao. Može se dobiti to šta želiš. Sada nemam vremena ali budem ti napisao cijeli query.
[ srdrazic @ 28.12.2013. 15:52 ] @
Ok nije žurba mogu sačekati, hvala ti na dosadašnjem trudu.
Pozdrav
[ captPicard @ 28.12.2013. 16:50 ] @
Prvi query (zove se Rang):

Code:
SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(Trofejni.cic) FROM
Trofejni As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic > Trofejni.cic) + 1 AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC desc, Trofejni.Lovac


Drugi query (obrati pozornost da unutar njega pozivam prvi query "Rang")

Code:
SELECT Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, (SELECT Count(*) FROM
Rang As X WHERE X.vrTrofeja =Trofejni.Vrtrofeja And X.cic > Trofejni.cic) + 1 AS Rank, Trofejni.Lovac
FROM Trofejni
GROUP BY Trofejni.IdUdruz, Trofejni.BrLovista, Trofejni.Vrsta, Trofejni.VrTrofeja, Trofejni.CIC, Trofejni.Lovac
ORDER BY Trofejni.Vrsta, Trofejni.CIC desc, Trofejni.Lovac




Možeš to opet staviti u novi SELECT da makneš onu prvu praznu vrijednost (pogledaj moj primjer gore).

Može se još to malo ušminkat, ali to možeš i sam

Eto, nadam se da sam pomogao. Pozdrav.

Edit: ako nije jasno reci, pa budem potavio cijelu bazu sa primjerom na kojem sam radio.
[ srdrazic @ 28.12.2013. 18:48 ] @
Ipak mi ne štima nešto?
Kopirao sam prvi Code i napravio query "rang" a zatim kopirao i drugi Code i napravio novi query "rank".
Kada pokrenem drugi query dobijem sve jedinice u polju rang".
Ima li veze što sam u mojoj bazi dodao još jedan zapis u CIC bodovima od 156 pa ih sada ima tri?
Negde grešim.

[ captPicard @ 28.12.2013. 23:45 ] @
Da li ti izađe u redu rezultat ako imaš samo dva sa 156? Jer moguće je da je u tome problem. Javi da li je problem u 3/više istih rezultata pa čemo rješiti.
[ srdrazic @ 29.12.2013. 09:52 ] @
Izgleda da nije do istog zapisa. Probao sam ove query-je i na bazi koju sam okačio u prvom postu i opet isto.
Ako nije problem da okačiš tu bazu u kojoj je ovo uspelo.

Da li si možda neko polje stavio na "unique value" jer dok sam tražio rešenje na internetu nailazio sam na primer gde se stavlje neko od polja na " unique value"
[ srdrazic @ 29.12.2013. 10:02 ] @
U ovom postu sa "code-ovima" kažeš: "Drugi query (obrati pozornost da unutar njega pozivam prvi query "Rang")"

ali ja u drugom query-ju ne vidim da pozivaš taj query nego opet vučeš podatke iz tabele "trofejni" možda je tu problem?
[ captPicard @ 29.12.2013. 13:26 ] @
Drugi qry
Code:

(SELECT Count(*) FROM
Rang As


Okačim kasnije bazu na kojoj sam radio.
[ srdrazic @ 04.01.2014. 12:25 ] @
Ono što je u ovom slučaju potrebno je neka komanda slična sql "DENSE RANK" koju access ne podržava.
Naišao sam na neki primer http://blogannath.blogspot.com...very.html#chitika_close_button
ali negde sam opet pogrešio i ne dobijem željeni rezultat.

Možda baza nije jasna. Najjednostavniji primer za to je rangiranje , recimo , fudbalskih klubova u tabeli, kada dva ili više klubova imaju isti broj bodova pa dele određeno mesto.
[ srdrazic @ 18.01.2014. 19:20 ] @
Iako nisam još rešio problem sa rangiranjem naišao sam na novi.
Problem je otvaranja nove forme uz kriterijum iz dva combo box-a.
Iako na forumu ima sličnih primera kod mene je ovo jedno vreme radilo ali prilikom unosa novih podataka za lovišta i
udruženja ovaj link naprosto pukne i program više nije upotrebljiv.

Vrteo , testirao, kombinovao ali ne ide, gde sad grešim ???