[ hass @ 22.10.2003. 14:40 ] @
Da malo bolje pojasnim gornju zavrzlamu:
Imam sledece tabele:

- Artikli
- Grupe artikala
- Podgrupe artikala

Hocu da izlistam najboje rangiran artikal iz grupe aritkala.

Znaci, npr:

IdArtikal = 4, IdPodgrupa = 1
IdArtikal = 5, IdPodgrupa = 1
IdArtikal = 7, IdPodgrupa = 2

Hocu da dobijem artikle sa ID-om 5, 7.
Ja sam pokusao sa sledecim SQL-om, koji ne radi

"Select artikli.IdArtikal AS Artikal2, Naziv, Opis, foto.Url, Popust, Cena,
PopustProcenat, IdPodKategorija, podkategorije.IdKategorije
AS IdKategorija,
Rang, RangBrojac, NazivKategorije
from artikli, podkategorije, kategorije, foto
where artikli.IdPodKategorija = podkategorije.IdPodKategorije
and podkategorije.IdKategorije = kategorije.IdKategorije
and artikli.IdFoto = foto.IdFoto
group by IdPodKategorija, rang
having rang >= 4


Hvala Vam
[ bluesman @ 22.10.2003. 22:16 ] @
Generalni savet: kada god imas "listanje" najboljih, najgorih... kljucni deo je ORDER BY. Znaci, to je najlaksi tip querija gde je bitno samo da sortiras po polju koje trazis. Napravi select koji ti kupi sve relevatne columns, joinuj tabele i radi sta hoces samo na kraju dodas ORDER BY Rang DESC (znaci od najveceg ka najmanjem)

Iz tvog primera nije bas (bar meni) najjasnija struktura i relacija pa ne mogu konkretno, ali mislim da bi i gornji savet mogao dovoljo da ti pomogne.
[ hass @ 23.10.2003. 09:02 ] @
UF. TEsko mogu da objasnim, ali mislim da nije problem u ORDER BY kolona ASC ili DESC
[ Zidar @ 24.10.2003. 14:24 ] @
Juce sam poslao odgovor ali jos uvek se ne pojavljuje na forumu. Ako ovo uspe, postavicu ponovo.

:-)
[ Zidar @ 27.10.2003. 14:57 ] @
Koliko sam razumeo, tvoje pitanje glasi: "Kako da prikazem u kveriju artikle koji su najbolje rangirani u okviru scake kategorije?" = "Za svaku kategoriju, prikazati najbolje rangiran artikl".

Ja sam pretpostavio da tvoja tabela izgleda nekako ovako i da je Max rang najbolji rang. Trebaju ti dva kverija. Prvi da ti pokaze maximalan rang po kategoriji - najobicniji GROUP BY kveri. Onda ti treba jos jedan kveri, koji prikazuje kategorije i artikle, ali samo one ciji je rang jednak rangu prikazanom u prvom kveriju.

Tabela:
-------
IdArtikal IdPodKategorija Naziv Opis Rang
1 A asdf asdf 1
2 A qwerty blaq bla bla 2
3 A dfghj bla/bla 1
4 A qazx yak yak yak 3
5 B njio oh oh oh 2
6 B ngre uh uh uh 1
7 C ftyu ha ha ha 2
8 C mhtr eh ehe he 3
9 C gyuk aj ij uj 1


Prvi kveri, vw_CategMaxRange:
------------------------------
SELECT Artikli.IdPodKategorija, Max(Artikli.Rang) AS MaxOfRang
FROM Artikli
GROUP BY Artikli.IdPodKategorija;

drugi kveri, vw_AricleWithMaxCateg:
-----------------------------------
SELECT Artikli.IdPodKategorija,
Artikli.IdArtikal, Artikli.Naziv,
Artikli.Opis, Artikli.Rang
FROM Artikli INNER JOIN vw_CategMaxRange
ON (Artikli.IdPodKategorija = vw_CategMaxRange.IdPodKategorija)
AND (Artikli.Rang = vw_CategMaxRange.MaxOfRang);


Prvi kveri vraca
IdPodKategorija MaxOfRang
A 3
B 2
C 3

drugi kveri vraca
IdPodKategorija IdArtikal Naziv Opis Rang
A 4 qazx yak yak yak 3
B 5 njio oh oh oh 2
C 8 mhtr eh ehe he 3
[ hass @ 27.10.2003. 16:54 ] @
Hvala, to je taman ono sto mi je trebalo !