[ fahre @ 26.02.2007. 12:33 ] @
| Pozdrav
Imam dvije tabele: Primaoci i primanja. Primaoci primaju primanja po osnovu pet kategorija. Kreirao sam tabelu primanja sa poljima: ID, ID primaoca, kategorija i iznos i povezao je sa tabelom Primaoci. Kod unosa u formu pronadjem odredjenog primaoca, odaberem kategoriju i unesem iznos.
Medjutim potrebno je da kreiram izvjestaj u kome cu imati slijedece kolone: ime i prezime; kategorija 1, kategorija 2 .... i ukupno
Problem je sto pod kategorijama mora biti prikazana njihova suma.
Probao sam sa crosstab query-em ali mi u slucaju da nema iznosa u jednoj od kategorija ukupno ne prikazuje.
Probao sam svaku kategoriju prebaciti u posebnu tabelu, ali se javlja opet ista stvar.
help |
[ Getsbi @ 26.02.2007. 16:22 ] @
Ako sam dobro shvatio treba ti nešto ovako i to sa tri tabele jer se tako ne ruši normalizacija.
[ fahre @ 27.02.2007. 06:57 ] @
Ovo je u redu, ali problem je napraviti report u obliku:
ime i prezime Penzija Honorar LD .... UKUPNO
Peric Pera 959 1000 1959
.
.
.
Ovo UKUPNO nece da izracuna ako sve kategorije nisu popunjene, jer u slucaju Peric Pere LD ne postoji, nije ni Null pa se ne moze definisati izraz za UKUPNO.
Jedino mozda da pokusam definisati da se kod unosa novog primaoca za svaku kategoriju automatski unese i prvi iznos koji bi bio nula.
[ Getsbi @ 27.02.2007. 08:45 ] @
Napraviš Query2 kao u primeru i onda primeniš tvoju ideju o Crosstab query-ju, tako da onaj prvi posluži ovom drugom kao izvor podataka. Ovaj potonji će ti poslužiti za izradu izveštaja, gde ćeš sumirati sve kategorije u jednom redu sa nekim unbound poljem. Ustvari dobićešpolje "Total Of Iznos" za red, a možeš i po kategorijama da sumiraš u Page Footer.
[Ovu poruku je menjao Getsbi dana 27.02.2007. u 10:00 GMT+1]
[ fahre @ 27.02.2007. 09:54 ] @
To je to.
Hvala
[ fahre @ 02.03.2007. 14:27 ] @
Sad se pojavio drugi problem:
Za kategoriju "renta" iz prikacene baze ne postoji ni jedan unos tako da se ne prikazuje u crosstab-u.
Ali ja ipak zelim tu kolonu ubaciti u izvjestaj, pa kod printanja mjesecnog izvjestaja da, iako nema unosa, prikaze tu kolonu.
Odnosno moram imati definisan konacan izvjestaj odmah na pocetku kreiranja baze.
DA li na pocetku ubaciti nekog bezimenog primaoca sa nulama za sve kategorije, tako da se one pokazu odmah na pocetku, ili postoji neko pametnije resenje.
Taj bezimeni ce se prikazivati u izvjestaju.
[ Getsbi @ 02.03.2007. 16:41 ] @
Ne znam za bolje rešenje obzirom da se radi o Crosstab query-u. To ti je kao i u slučaju da proširiš tabelu za kolonu. Ako ćeš je u izveštaj, onda moraš taj izveštaj da prepraviš jer je u tom slučaju kategorija ta nova kolona.
Posle malo razmišljanja setio sam se da sam svojevremeno u Clipper-u napravio rastegljivi izveštaj što se kolona tiče i širio se po principu :
a b c d ............ za strane i kolone u okviru njih
1
2
3
4
5
.
.
.
Međutim to bi zahtevalo mnogo programiranja u VBA, testiranja i utrošenog papira. U svakom slučaju probaj da predvidiš broj kategorija i svedeš izveštaj na fiksni broj. Inače nije problem da se napravi leva i desna strana istog izveštaja.
[Ovu poruku je menjao Getsbi dana 02.03.2007. u 18:01 GMT+1]
[ Zidar @ 02.03.2007. 17:23 ] @
Negde na pocetku, treba ti neki LEFT JOIN, da ti prikaze sve kategorije, cak i one za koje nema prometa.
[ Getsbi @ 02.03.2007. 18:55 ] @
Hvala Zidaru. Napravio sam mu takav query u primeru. S tim što Access traži separatni query. Query3 je izvor za Query4, a ovaj za Crosstab query. Možda može i bolje.
[ Getsbi @ 02.03.2007. 22:14 ] @
Evo malo elegantnije. Jedan Righ i jedan Left Join u istom upitu obzirom da su tri tabele u pitanju.
[ fahre @ 06.03.2007. 13:40 ] @
Hvala vam puno na savjetima.
Je li u redu da se sve svede na jedan query, ovako kako je u primjeru.
[ fahre @ 06.03.2007. 13:44 ] @
Jos me samo zanima zasto se javlja jedan prazan red u upitu, odnosno u izvjestaju.
[ Getsbi @ 06.03.2007. 19:49 ] @
Prazan red se javlja zato što postoji kategorija Renta koja nije upotrebljena u Primanjima.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|