Da vidimo sta sam razume, a sta ne. Gledajuci u podatke i shemu tabela, vidim da imamo polje UgovorenaVrijednost
u tabeli Projekti.UgovorenaVrijednost. SLicnio imamo u JavnaNabava.Vrijednost. U najvecem broju slucajeva je Projekti.UgovorenaVrijednost = JavnaNabava.Vrijednost, ali ne uvek. Ima slucajeva kada imamao vise od jedne Javne Nabave za isti projekat. Tada vazi Projekti.UgovorenaVrijednost >= SUM(JavnaNabava.Vrijednost).To cemo d aostavimo tako. Bilo bi lepo da se kontrolisu ovi uslovi, ali pretpostavljam da nije problem da se nekako 'garantuje' da je to OK.
Neka stoji kako stoji.
Pretpostavio sam da se za izvestaje uzima vrednost iz Projekti.UgovorenaVrijednost.Da li je ta pretpostavka tacna?
Za svaku Javnu Nabavu, trebalo bi da postoji i jedan rekord u tabeli Ugovori. Ovo je komplikovano da se postigne, ima u modelu koji smo postavili ranije, ali nije neophodno za sada. Mnogo je vzanije da SVAKA situacijaima ugovor. Vezivanje situacije na Projekat, bez ugovora, moze da prodje, ali je cistije mnogo ako se veze na ugovor.
Ja sam pokusao da povzem ugovore i situacije, i uspelo je za sve osim nekoliko. Situacije vezane za Projekte 17,14 i 10 nisam mogao da spojim s augovorima, jer u tabeli Ugovori nema ugovora za te projekte, ni jednog. Ako to dodas, mnogo tga ce biti lakse. Ovaj kveri radi na tvojoj bazi i pokazuje situacije za koje nemas ugovore:
Code:
SELECT
Situacije.SituacijaID, Situacije.TipSituacijeID
, Situacije.Broj, Situacije.Izvođač, Situacije.ProjekatID, Ugovori.ProjekatID
FROM Situacije LEFT JOIN Ugovori ON Situacije.ProjekatID = Ugovori.ProjekatID
WHERE (((Ugovori.ProjekatID) Is Null));
Sto se tice izracunavanja na Bilanci, to se asniva na dve pretpostavke:
1) Vrednost projekta ce cita iz Projekti.UgovorenaVrijednost ili SUM(JavnaNabava.Vrijednost), sta je bolje?
2) Protiv toga se postavljaju samo ugovori koji su tipa "Izvodjenje" ili "Nadzor",
Znaci, Projekti.UgovorenaVrijednost >= SUM(Situacije WHERE TipUgovora IN ("Izvodjenje","Nadzor")
Tu ima jedna problem. Na tvojim izvestajima, ti oduzimas samo IZvodjenje, nadzor ne oduzimas. To je mozda namerno, a mozda je rezulat cinjenice da si sumu siturianih vrednosti stavio u HEADER sekcije TipSituacijeID, pa ti slucajno cita samo prvu TipSituaciejID, koji sasvim slucajno je "Izvodjenje"
Ovde imamo cudnu stvar, da se TipUgovora i TipSituacije uglavnom poklapaju(opisi se poklapaju, ne i kodovi), osim za tipove ugovora 1 i 7. To govori da ugovori tipa 1 i 7 i ne treba da budu u istoj tabeli sa ostalima, ali ako insistiras, neka ih i tamo. Time smo kverije napravili komplikovanijim, ali nema veze. Ugovori tipa 1 i 7 ne rezultiraju Situacijom, svi ostali rezultiraju situacijom - prema tome, to nisu isti ugovori, nisu iste vrste, i zgodno bi bilo orazdvojiti iha, ali neka stoji.
Moja verzija 04 sabira "Izvodjenje" i "Nadzor" pa taj zbir uporedjuje sa Projekti.UgovorenaVrijednost. Tako si tikazao, ali tako nisi uradio na bilanci. Malo sam prepravio relacije. Dodao sam kolony 'Vazi se' u tabelu TipUgovora, cekirano je za Izvodjenje i NAdzor, za sve ostalo nije.To ide u kverije qryZ_BilancaStanja i qryZ_ProjektiIUgovori od kojih s eposle sve gradi. Verovatno kveriji mogu da s enaprave tako da vaze i za druge tipove ugovora, pa da se pred upotrebu odbaci sto ne treba ali dnas nemam vise vremena.
Sve u svemu, mozes da zadrzis sto si napravio, ako moras. Ako imas vremena da ponovo pokusas, milsim da je bezbednija varijanta strujtura baze u mojoj verziji 04. Sve podatke sam prebacio iz tvoje posledne MDB verzije, pa brem podatke ne gubis. Budi oprezan sa MIcrosoft wizardima i template resenjima, cesto lepo izgledaju, ali ne rade bas kako treba.
Imas u
tabeli JavneNabave polaj za datume, koja se ti text tipa.