[ CallMeSaMaster @ 23.11.2006. 18:25 ] @
U bazi imam nekoliko tabela.Svaka od tiha tabela recimo sadrzi po neki broj kolona koj mi trebaju da bi izracunao neku vrijednost.

Recimo tabela1 sadrzi kolonu pozicija
tabela2 tezina
tabela3 visina


recimo da ja po nekom algoritmu trebam izracunati rezultat=pozicija*2+tezina*0.5+visina*0.25
Sada trebam da izlistam u datagrid samo 10 najvecih rezultata

Kako mogu to da uradim?
[ goranvuc @ 23.11.2006. 18:29 ] @
U tvom pitanju nije jasna relacija izmedju tabela 1, 2 i 3. Moras detaljnije objasniti problem.

Pozdrav!
[ CallMeSaMaster @ 23.11.2006. 18:51 ] @
Evo primjer ako nisam bas bio jasan.

Imam tabelu Korisnik

Id Ime Visnina Tezina pozicija
---------------------------------------------
1 Iks 199 93 2
2 Ipsilon 193 94 1
3 Beta 188 78 4
4 Gama 190 89 3


I sledece tabele

Tabela 1

Visina KoeficijentVisina
-------------------
197 2
198 2.2
199 2.5
itd

Tezina KoeficijentTezina
-------------------------
94 1.6
95 1.7
96 1.8


Pozicija KoeficijentPozicija
---------------------------
1 10
2 9
3 8
itd

Sada trebam recimo da ispisem imena 10 korisnika koji imaju najveci rezultat a koji se dobije racunanjem:
Rezultat=Visina*KoeficijentVisin+Tezina*KoeficientTezina+KoeficijentPozicija

Kako da display sada tih 10?

Nadam se da je jasnije
[ goranvuc @ 23.11.2006. 19:12 ] @
Ako sam te dobro shvatio, imas tri tabele koeficijenata, u kojima su moguce vrednosti i odgovarajuci koeficijenti. Ako je to tako, onda je stvar vrlo jednostavna:
Code:

SELECT TOP 10 Ime, (Korisnik.Visina * KoeficijentVisina + Korisnik.Tezina * KoeficijentTezina + KoeficijentPozicija) AS Rezultat 
FROM Korisnik 
INNER JOIN Visine ON Korisnik.Visina = Visine.Visina 
INNER JOIN Tezine ON Korisnik.Tezina = Tezine.Tezina 
INNER JOIN Pozicije ON Korisnik.Pozicija = Pozicije.Pozicija
ORDER BY Rezultat DESC

Bio sam tako slobodan da tabele 1, 2 i 3 imenujem "smisleno".

Ako ima neka greska, izvini, nisam probao.