|
[ stefann127 @ 10.06.2011. 11:09 ] @
| Poštovani forumaši,
naišao sam na problem relacija i prikaza u upitu.
Imam sledeće tabele:
skola T1: ID_SKOLA,NAZIV_SKOLA,VRSTA_SKOLA(combo)ADRESA, OPSTINA(combo),
nastavno T2 : ID_SKOLA(combo T1), OPIS_POSAO(combo T3),KOEF(comboT3), BROJNAS,
vrsta posla T3: ID_POSLA,SSS(combo), OPIS_POSAO,KOEF
vannastavno T4: ID_SKOLA(combo T1), OPIS_POSAO(combo T3),KOEF(comboT3), BROJVANNAS
Napravio sam upit QNAST sa podacima iz tabela T1, T2 i T3 i izrazom EXPNAS (množenje KOEF*BROJNAS)
i upit QVANNAS sa podacima iz T1, T2 i T3 i izrazom EXPVANNAS (množenje KOEF*BROJVANNAS).
U jednom izveštaju trebam da navedem i podatke i QNAS i QVANNAS, ali mi kartezijan ukrštanje podataka zbog neispravnih veza pokazuje uvećan i nesvrsishodan broj zapisa u izveštaju, dok je sumaran broj EXPNAS i EXPVANNAS u izveštaju ispravan. Mislim da je u pitanju referenciranje odnosa tabela?#
Može li mi neko pomoći da kreiram ispravan upit na osnovu koga bi napravio RPT sa SUM i ispravnim prikazom vrednosti EXPNAS i EXPVANNAS.
Baza nije pogodna za slanje zbog veličine, mogu poslati Print Scr table relations
Hvala unapred forumaši.
PS. Evo prilažem i SQL upita u kome nema nijednog prikaza, ali sam želeo obuhvatiti i nastavno i vannastavno
SELECT tbl_skole_SS.NAZIV_SKOLE, tbl_vrsta_posla.OPIS_POSAO, tbl_vrsta_posla.KOEF, tbl_nastavno.BROJ_NASTAVNO, tbl_nastavno.BROJ_RADNIKA_NAST, tbl_vannastavno.BROJ_VANNASTAVNO, tbl_vannastavno.BROJ_RADNIKA_VANNAS, tbl_vannastavno.KOEF_VANNASTAVNO
FROM (tbl_skole_SS INNER JOIN (tbl_vrsta_posla INNER JOIN tbl_nastavno ON (tbl_vrsta_posla.OPIS_POSAO = tbl_nastavno.OPIS_POSAO) AND (tbl_vrsta_posla.KOEF = tbl_nastavno.KOEF_NASTAVNO)) ON tbl_skole_SS.NAZIV_SKOLE = tbl_nastavno.ID_SKOLE) INNER JOIN tbl_vannastavno ON (tbl_vrsta_posla.OPIS_POSAO = tbl_vannastavno.OPIS_POSAO) AND (tbl_skole_SS.NAZIV_SKOLE = tbl_vannastavno.ID_SKOLE);
[Ovu poruku je menjao stefann127 dana 10.06.2011. u 12:33 GMT+1] |
[ Getsbi @ 10.06.2011. 14:12 ] @
Uzmeš kopiju baze, delimično isprazniš tabele i zakačiš fajl.
[ stefann127 @ 10.06.2011. 19:54 ] @
Hvala ti Getsbi, evo šaljem .zip dela baze kod koga sam zastao.
Ponovio bih da mi je potreban rpt u kome će stajati podaci o školi iz tbl_vrsta_skole, podaci o broju nastavnika, broju radnika, koef i broju obračunskih za nastavno i za vannastavno, iz upita qry_nastavno i qry_vannastavno i sumarno broj obračunskih nastavno i vannastavno.
Imam tu još neke izraze izveštaj o prosečnom minulom radu i procentu u izveštaju, koji su povezani sa onim koje sam naveo.
Hvala unapred
[ Getsbi @ 11.06.2011. 06:58 ] @
Za početak nemoj da pišeš nazive polja sa razmacima čak ni u upitima:
BROJ OBRACUNSKIH RADNIKA
već
BROJ_OBRACUNSKIH_RADNIKA ili BrojObracunskihRadnika
Potom napravi Union query onako kako sam ja otprilike na brzinu napisao u upitu qry_Union
Kasnije union query uzmi kao izvor za izveštaj i tamo napravi sumiranja.
Kratak sam sa vremenom ali vidi i dopuni ovo.
[Ovu poruku je menjao Getsbi dana 11.06.2011. u 08:59 GMT+1]
[ stefann127 @ 11.06.2011. 18:44 ] @
Getsbi,
nisam mogao da uočim da sam navodio nazive polja sa Space, ali prihvatam za ubuduće.
U qry_union mi trebaju svi podaci iz qry_nastavno i qry_vannastavno složeni.
Pokušao sam sa sql
***************************************
SELECT Naziv_Skole, Opis_posao, Broj_nastavno, Broj_radnika_nast, Koef, Broj_obracunskih_radnika
From qry_nastavno
UNION SELECT
Naziv_Skole, Opis_posao, Broj_vannastavno, Broj_radnika_vannas, Koef, Broj_obracunskih_radnika
FROM qry_vannastavno
ORDER BY Naziv_Skole;
***************************************
i dobio sam parametarski upit za OPIS_POSAO i samo podatke za nastavno, dok za vannastavno sql upit ne prikazuje, jer su OPIS_POSAO i KOEF izvorno u tbl_vrsta_posla.
Takođe te molim da mi napišeš da li se Properties za željena polja Format i decimal place kao Standard i 2 decimale podešavaju tek u izveštaju ili na drugi način?
Dakle, molim te za razumevanje, potreban mi je union qry_nastavno i qry_vannastavno ali sa svim podacima u prikazu.
Hvala veliko.
[ Getsbi @ 12.06.2011. 07:08 ] @
1. Format polja se podešava u tabelama još prilikom njihovih kreiranja. Kasnije podešavaš izaz koji ti odgovara u formama i izveštajima.
2. Polja sa Space su bila u tvojim upitima u fajlu SS obracun.mdb
qry_nastavno:
BROJ OBRACUNSKIH RADNIKA: tbl_nastavno!BROJ_NASTAVNO*tbl_vrsta_posla!KOEF
qry_vannastavno:
BROJ OBRACUNSKIH RADNIKABROJ OBRACUNSKIH RADNIKA: tbl_vannastavno!BROJ_VANNASTAVNO*tbl_vrsta_posla!KOEF
To kasnije pravi problema prilikom dalje upotrebe, kao što je ovde slučaj.
3. Juče sam na brzinu napisao Union qery zbog manjka vremena. Moja greška je što sam u tvojim upitima zadržao nepotrebne tabele. Evo ti sad svi podaci. Ako ti prilikom primene ne daje sve rezultate ubaci između UNION i SELECT klaulzulu ALL. Dakle UNION ALL SELECT koji spaja zapise po uparenoj koloni i zadržava duplirane redove.
Komentar:
Model je nasleđeni sistem, što se vidi po nazivima tabela i vezama koje su karakteristične za dbase alate gde se koristi SET RELATION TO ……. INTO ……
Primarni klučevi bi trebalo da su ID (Long Integer ili Integer , a ne text). „Spuštanje“ ključeva je onda jednostavnije i model čitljiviji. Ima nekontrolisane redundance ( KOEF_VANNASTAVNO….).
Trebalo bi prepraviti ceo model, ali za to baš nemem vremena, a ni poterbnih informacija.
[ stefann127 @ 12.06.2011. 17:52 ] @
Getsbi,
naprosto nisam primetio u Exp nazive polja, mada sam se trudio da u nazivima koristim _, ali promaklo mi.
U svakom slucaju hvala ti puno.
Ako ti bude zatrebalo nesto u Ministarstvu prosvete, javi se.
poz
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|