moglo bi sa onim select-om, samo bih predlozio left join umesto subselect-a. ako subselect vraca malo podataka, onda je ok ali ako vraca vise, mislim da to za MySQL nije optimalan upit (bogdane, ispravi me ako gresim).
ja bih stavio: SELECT aNaziv,aSifra,aPorez,aMera,rDatum FROM tblArtikli LEFT JOIN tblRacuni ON ... WHERE tblRacuni.aSifra IS NULL
alternativno, moze da se ubaci COUNT pa da se dobije koji artikal je koliko puta prodavan. u tom slucaju ne treba WHERE tblRacuni.aSifra IS NULL vec nesto tipa:
SELECT aNaziv,aSifra,aPorez,aMera,rDatum, COUNT(tblRacuni.aSifra) as BrojProdaja FROM tblArtikli LEFT JOIN tblRacuni ON ... GROUP BY aNaziv,aSifra,aPorez,aMera,rDatum ORDER BY COUNT(tblRacuni.aSifra) ASC (ili DESC, ako trazis najprodavanije artikle)
inace ne podrzavam praksu keshiranja business podataka tipa proste agregacije iz child tabele u master tabeli, osim ako za to ne postoji debeo razlog a ovde ga ne vidim. ako artikala ima puno (100-ne hiljada) onda bi mozda imalo smisla ali ne zbog ovog izvestaja koji se, cenim, generise jednom mesecno ili kvartalno.
ako se resis da drzis broj prodaja u tabeli artikala, predlazem da se ona azurira stored procedurom, ne iz koda - integritet podataka ove vrste je stvar baze, ne aplikacije.
Acta, non verba!