Koliko u stvari imas tabela gde se moze nalaziti cena? Jednu ili dve? To nisam bas razumeo.
Ako imas jednu tabelu gde se recimo upisuje datum promene cene za svaki artikl, ond svaki artikl u toj tabeli imamo najmanje jednom a neke imamo vise puta. Logicno je da se trazi uvek najnovija cena. Recimo da tabela izgleda ovako:
Code:
ArtiklID Cena DatumVazenja
'Jabuke' 15.6 #10 Mart 2007#
'Kruske' 7.6 #10 Mart 2007#
'Jogurt' 4.2 #10 Mart 2007#
'Jabuke' 25.6 #15 Juli 2007#
'Jogurt' 6.5 #12 Maj 2007#
Logicno je da zelis uvek poslednju cenu za svaki artikl. Koja je poslednje cena? Izracunas MAX(DatumVazenja) za savki artikl, pa onda prikazes cenu za taj artikl na taj datum. Primenis Dlookup na taj poslednji kveri.
qryMaxDatumVazenja:
Code:
SELECT ArtiklID, MAX(DatumVAzenja) AS DatumPoslednjePromeneCene
FROM tblCene
GROUP BY ArtiklID
qryAktuelneCene
Code:
SELECT A.ArtiklID, A.Cena
FROM tblCene AS A
INNER JOIN qryMaxDatumVazenja AS B
ON A.ArtiklID = B.ArtiklID AND A.DatumVAzenja = B.DatumPoslednjePromeneCene
Sad iz qryAktuelneCene procitas cenu za bilo koji artikl (moze i dlookup, sto da ne). Uslov je da se svi artikli nalaze u tabeli tblCene barem jednom, sto se lako postize. Cuvati cenu u dve tabele je mnogo komplikovano, jer tada moras da radis ono sto ti radis 'potrazi na mestu A, pa ako nema tamo onada potrazi na mestu B'. Nista IF, nista petlje (cuj, petlje, boze sacuvaj) . Dlookup i nije kod, to je samo funkcija koju nekeko treba pozvati da nam olaksa zivot. Ako mora kod, neka bude sto jednostavniji. A to moze samo ako kveriji odrade svoj posao.
Zidareva teorema:
"the best code is no code at all"