Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pogresan upit = kartezian ukrštanje podataka

[es] :: Access :: pogresan upit = kartezian ukrštanje podataka

[ Pregleda: 1588 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
195.222.97.*



Profil

icon pogresan upit = kartezian ukrštanje podataka10.06.2011. u 11:09 - pre 155 meseci
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]
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: pogresan upit = kartezian ukrštanje podataka10.06.2011. u 14:12 - pre 155 meseci
Uzmeš kopiju baze, delimično isprazniš tabele i zakačiš fajl.
 
Odgovor na temu

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
95.180.101.*



Profil

icon Re: pogresan upit = kartezian ukrštanje podataka10.06.2011. u 19:54 - pre 155 meseci
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
Prikačeni fajlovi
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: pogresan upit = kartezian ukrštanje podataka11.06.2011. u 06:58 - pre 155 meseci
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]
Prikačeni fajlovi
 
Odgovor na temu

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
95.180.101.*



Profil

icon Re: pogresan upit = kartezian ukrštanje podataka11.06.2011. u 18:44 - pre 155 meseci
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.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: pogresan upit = kartezian ukrštanje podataka12.06.2011. u 07:08 - pre 155 meseci
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.


Prikačeni fajlovi
 
Odgovor na temu

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
95.180.101.*



Profil

icon Re: pogresan upit = kartezian ukrštanje podataka12.06.2011. u 17:52 - pre 155 meseci
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
 
Odgovor na temu

[es] :: Access :: pogresan upit = kartezian ukrštanje podataka

[ Pregleda: 1588 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.