Pogčedajte punu verziju : TOP 5 rekorda iz baze ?
Ministar
20. 11. 2006., 10:40
Pozdrav, moze li mi ko pomoci oko top 5 rekorda iz baze, probao sam sa ovim al ne ide:
Set RS_Najcitaniji= Conn.Execute("SELECT top 5 * FROM Vijesti Order by Broj_Pregleda Desc")
Zapravo ovo mi radi na localhost, ali na serveru mi ispise sve vijesti jedna ispod druge.
Imam bazu, tabela Vijesti i u njoj polja ID, Naslov, Sadrzaj, Broj_Pregleda
Broj pregleda je number field, i tu se upisuje broj citanja nekih vijesti, e sad bi trebao top 5 naslova , tj koji imaju najvise citanja,
a ako neko ima vec primjer recimo top 5 naslova u zadnjoj sedmici e sad neznam pokusao sam sa gogleom al tesko.
Hvala puno svima koji bar malo pomognu.
cvele
20. 11. 2006., 11:08
da bi imao po nedelji onda moras da uvedes time_stamp ili nesto sl
ako se radi o mysql, a pretpostavljam da se radi onda ce ti limit 5 resiti posao. samo posto uvedes time_stamp moraces da napravis neki whare koji ce vracati za zadnjih 7 dana.
Takodje mozes i po nedelji recimo treba ti za 12. nedelju u godini...
WHERE WEEKOFYEAR(time_stamp) = 12 LIMIT 5
Moze tu jos dosta cuda da se uradi.
Btw. Cini mi se da mysql ne podrzava top...
dinke
20. 11. 2006., 13:05
select ID, Naslov, Sadrzaj, Broj_Pregleda from Vijesti
order by br_pregleda desc limit 5
BraMom
20. 11. 2006., 13:32
Čini mi se da Ministar ne koristi mySQL, ovo "SET RS = ..." mi više liči na neki vb kod.
Bilo bi lepo da postuješ sa kojom bazom radiš.
cvele
20. 11. 2006., 15:11
Čini mi se da Ministar ne koristi mySQL, ovo "SET RS = ..." mi više liči na neki vb kod.
Bilo bi lepo da postuješ sa kojom bazom radiš.
sta ti je cudno kod SET ? mysql ga koristi i to vrlo rado...
@dinke
da li to nece prikazati za zadnjih nedelju dana vec globalno
dinke
20. 11. 2006., 16:15
Well, nisam znao da hoce samo za zadnju sednicu, posto nije ni pominjao date polje u tabeli :)
Imam bazu, tabela Vijesti i u njoj polja ID, Naslov, Sadrzaj, Broj_Pregleda
Broj pregleda je number field, i tu se upisuje broj citanja nekih vijesti, e sad bi trebao top 5 naslova , tj koji imaju najvise citanja ...
Elem, ako hoce za poslednjih 7 dana, pod pretpostavkom da ima date_field polje u tabeli koje sadrzi mysql date format samo doda to u where, dakle nesto tipa:
select ID, Naslov, Sadrzaj, Broj_Pregleda
from Vijesti
where date_field>=date_sub(current_date(), interval 7 day)
order by br_pregleda desc limit 5
cvele
20. 11. 2006., 16:21
sve u svemu iscitaj lepo
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Tu ti je sve sto ti treba vezano za vremena u mysql.
Sto se tice ogranicavanja to smo ti svi vec rekli LIMIT u kombinaciji sa sort by
(top() je koliko sam nasao neka izmisljotina za access... mislim da negresim, google mi rekao)
Petar Marić
20. 11. 2006., 16:40
TOP se u MS SQL koristi umesto LIMIT. Mada, valja napomenuti da TOP podržava definisanje samo gornje granice, a ne i donje :(
degojs
20. 11. 2006., 16:51
cvele
sta ti je cudno kod SET ? mysql ga koristi i to vrlo rado...
Samo što taj SET o kom ti pričaš nije baš isti kao ono što je čovek napisao. Ovo gore je primer VB koda (ili VBScript), verovatno stari ASP.
I pošto primer koristi TOP, onda je verovatno u pitanju MS SQL (možda i Access, ne sećam se više :-).
LIMIT ne radi tamo, tako da su rešenja do sada neupotrebljiva (osim ako se ne prebacuje na MySQL).
Ako koristi MSSQL onda može da koristi SET ROWCOUNT. Ima još rešenja, a MSSQL2005 podržava ROW_NUMBER().
P.S.
DevProTalk, please !!!! :)
BraMom
20. 11. 2006., 16:54
@Cvele
Set RS_Najcitaniji= Conn.Execute("SELECT top 5 * FROM Vijesti Order by Broj_Pregleda Desc")
SET nije u upitu, već u nekakvom programskom jeziku koji koristi Ministar, a meni ovo najviše liči na klasika ASP. A kako i upit nije validan u mySQL-u, zaključio sam da čovek koristi MSSQL ili Access, pa sam zato i pitao koju bazu koristi.
[@degojs eh nisam video poruku, tj. postovao si dok sam pisao :)]
degojs
20. 11. 2006., 16:57
TOP se u MS SQL koristi umesto LIMIT. Mada, valja napomenuti da TOP podržava definisanje samo gornje granice, a ne i donje :(
Čisto kao informacija, jedno od rešenja jeste kombinacija TOP i SET ROWCOUNT da bi se dobilo famozno deljenje po stranicama u MSSQL 2000.
oliver78
20. 11. 2006., 20:44
Mislim da njemu ne treba poslednja 5 unosa, vec 5 kojima je najcesce pristupano.
cvele
21. 11. 2006., 00:00
Čisto kao informacija, jedno od rešenja jeste kombinacija TOP i SET ROWCOUNT da bi se dobilo famozno deljenje po stranicama u MSSQL 2000.
Vidis set rowcount... za to sam bio ubedjen da je glupost koja je exluzivana za sybase. (duboko razocaran)
Za SET.. my bad.. nisam ni video to u njegovom query-u... neko sam mislio da je jos neko dao neki primer pa da je izbrisao post posto si ti odgovorio...
Dejan Topalovic
21. 11. 2006., 11:14
Hm, zar ne bi tema trebala u podforum SQL i baze podataka? Osim toga, autor teme nije rekao o kojoj je bazi rijec...
dinke
21. 11. 2006., 11:29
Premesteno. Nadam se da ce se autor (Ministar) udostojiti da se javi i kaze o kojoj se bazi radi.
Ministar
23. 11. 2006., 11:06
Radi se o obicnom asp i access bazi
vBulletin® v3.6.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.