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

Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS

[es] :: Access :: Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS

[ Pregleda: 5891 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DV Lord of Emty Space

Član broj: 45450
Poruke: 2
*.kg.sbb.co.yu.



Profil

icon Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS12.02.2005. u 17:47 - pre 233 meseci
Imam tabelu kupci koja sadrzi NazivKupca, PIB (Kupca),Ziroracun1,Ziroracun2,Ziroracun3,ZiroRacun4
, Itabelu Izdata roba koja ima PIB (Kupca),Kolicina,Cena I tabelu Uplate kupaca po racunima koja sadrzi BrojTekuceg(racuna),DatumUplate,IznosUplate

Kreirao sam query koji izracunava sumu prodate robe po kupcu QueryUkupnaSumaIzdateRobePoKupcuVP a kao medjukorak query koj selektuje brojeve racuna koji su uplatili I redja ih po pib-u QueryZbirTekucihRacunaKupaca (mozda to moze u jednom query-ju) a zatim query koji racuna koliko kupac je uplatio po kom racunu a vezano za PIB kao jedinstven broj kojji se ne ponavlja QueryUplateKupacaPoPIBu (u kome prikazuje samo kupce koj su uplatili).
Zatim sam kreirao query QueryUkupnaDugovanjaKupacaVP koji racuna dugovanja kupaca na osnovu SumOfIznosUplate I SumOfIznosIzdateRobe koristeci izraz QtyDiff .

Posto jedan isti kupac moze sa vise razlicitih racuna da uplati robu potrebno mi je da znam koji je sa kog racuna uplatio I koji iznos (to mi nije problem) .Medjutim problem je kada u query ne dobijam rezultate kupaca koji su samo uzeli robu a nisu je uplatili, vec pokazuje samo iznos za kupce koji su uplatili .TO MI TREBA ZBOG SALDA KUPACA QueryUkupnaDugovanjaKupacaVP .
Pretpostavljam da u query treba dodati null za racune sa kojih nije bilo uplate ali mi ne polazi za rukom da to izvedem .U pitanju je access 2003.Ima li neko resenje.

Sa postovanjem

DV







Prikačeni fajlovi
 
Odgovor na temu

programer
Novi Sad

Član broj: 37536
Poruke: 3
*.dynamic.sbb.co.yu.



Profil

icon Re: Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS14.05.2007. u 14:51 - pre 206 meseci
Evo malo zakasneli odgovor, ne znam da li sam razumeo tvoje pitanje ali opisacu ti jedan problem koji sam imao, a u pitanju je JOIN naredba koja moze da bude INNER JOIN, LEFT JOIN i RIGHT JOIN. Recimo da imas dve tabele, ili dva query-ja iz tih tabela:

1. uplate kupaca, upisujes:
datum uplate
broj izvoda
sifru kupca
broj fakture na koju se kupac pozvao
iznos uplate

ovde napravis query koji selektuje sum(uplata) group by broj_fakture jer se desava da po istoj fakturi imas nekoliko uplata, na nekoliko izvoda


2. zaduzenja kupaca

datum racuna
broj racuna
sifru kupca
vrednost racuna


Treba ti sada query koji ce dati spisak svih faktura bez obzira da li su placene ili ne, ali ako jesu da u jednoj od kolona bude ukupno uplacena suma po toj fakturi kao i iznos koliko ostaje za uplatu:

---BROJ_RACUNA---DATUM_RACUNA---IZNOS_ZADUZENJA----IZNOS_UPLATE-------RAZLIKA
=====================================================================
-----1-------------01.01.2007-------------100,00-------------100,00---------------0,00
-----2-------------10.01.2004-------------200,00---------------0,00-------------200,00
-----3-------------20.01.2007-------------150,00--------------75,00--------------75,00


crtice su jer mi editor za poruke pojede blankove pa se ne poklapaju kolone...

Vidis da prva i treca faktura imaju slogove u tabeli uplata, prva je isplacena cela, treca delimicno. Faktura broj dva ima slog samo u tabeli zaduzenja, a NEMA slog u tabeli uplata. Ako ovo uradis sa (INNER) JOIN naredbom ove dve tabele neces u rezultatu dobiti fatkuru broj 2, ali ako napises "LEFT JOIN" (ili RIGHT, zavisi kojim redom si naveo tabele), dobices ovaj red u rezultatu ali umesto 0,00 kao iznosa uplate dobices NULL vrednost jer racun broj 2 nema sloga u uplatama, pa treba da u delu SELECT-a (za poslednje dve kolone u tabeli rezultata) umesto:

..., uplata.iznos as iznos_uplate, zaduzenja.iznos - uplata.iznos as razlika

ubacis:

..., iif(isnull(uplata.iznos)=true,0,uplata.iznos) as iznos_uplate, zaduzenja.iznos - if(isnull(uplata.iznos)=true,0,uplata.iznos) as razlika

Ovo ce ti korigovati NULL vrednost na 0,00. Funkcija IIF ima tri argumenta odvojena zarezom: prvi je uslov, drugi je vrednost koju funkcija vraca ako je on ispunjen, treci je vrednost ako uslov nije ispunjen.

Ne znam da li je ovo problem koji si imao, ali potice od vremena kada sam ja ucio access... imao sam listu kupaca od kojih neki imaju upisan ptt broj, recimo "11000" (iz pomocnog sifarnika ptt brojeva se izvadi da je to Beograd i tako ide na listu), a neki kupci nemaju. Kada uradim JOIN dve tabele KUPCI i PTT po sifri PTT, nema onih bez PTT broja ali ako stavim LEFT JOIN izadju na listu svi. Kada povuces misem linju izmedju dve tabele od sifre ptt u jednoj do sifre ptt u drugoj, klikni desnim klikom na tu liniju u imaces tri opcije za prikaz samo povezanih polja ili svih slogova jedne ili svih slogova druge tabele... i to ce ti automatski pretvoriti i left, right ili inner join.




 
Odgovor na temu

Brz_na_tastaturi
Svilajnac

Član broj: 63852
Poruke: 318
217.26.79.*



+1 Profil

icon Re: Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS15.05.2007. u 22:38 - pre 206 meseci
Ovo povezivanje možeš da izvedeš i mišem, tj klikom na liniju (strelicu) koja povezuje odgovarajuća polja (ključeve) iz dve tabele i tu imaš opcije koje izgledaju otprilike ovako:
1 Prikazi slogove koji su u obe tabele
2 Prikazi sve slogove iz leve tabele i odgovarajuće slogove iz desne tabele
3 Prikazi sve slogove iz desne tabele i odgovarajuće slogove iz leve tabele


Možda je tačno da je sve već rečeno, samo nisu svi sve čuli i razumeli ...
 
Odgovor na temu

[es] :: Access :: Pravljenje baze po novim propisima -PIB ,vise tekucih-ACCESS

[ Pregleda: 5891 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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