[ nemshooo @ 06.06.2011. 18:23 ] @
Mucim se sa nekim osnovnim bankarsim pojmovima. Ne mogu da ih razumem. Radi se o bankarskim karticama i bankarsim transakcijama. Da ne bi gnjavio previse, precu na konkretan terminoloski problem.

1. Jedan klijent ima jedan bankarski racun, a moze da ih ima i vise. Svaki racun zaduzuje po najmanje jednu karticu koja moze biti KREDITNA ili DEBITNA.
2 .Svaki racun sluzi kao osnova preko kog ce se izvrsavati razlicite vrste transakcija.
3. Transakcije predstavljaju razne UPLATE na klijentov racun (prilive), ali i Isplata (odlive) ukoliko on sopstvena sredstva sa racuna (isplate rata, isplate kamata, razna placanja itd....) trosi.

Pitanje 1:

Kako da dobijem ukupnu vrednost transakcija po pojedinim vrstama transakcija?

Odgovor?

UPLATA + ISPLATA = UKUPNA VREDNOST TRANSAKCIJA
ili

UPLATA - ISPLATA = UKUPNA VREDNOST TRANSAKCIJA .

Pitanje 2:

Treba da nabrojim 10 kartica sa trenutno najvecim minusom.... (znam kako da iskodiram u SQL-u, ali mi je probelm sta da racunam ).

UPLATA - ISPLATA = RAZLIKA (minus) -- izdvojim iz tabele 10 kartica sa najvecim minusom
ili

ISPLATA - UPLATA = razlika (minus) -- izdvojim iz tabele 10 kartica sa najvecim minusom




Nisam navodio tabele namerno. Nisu potrebe. Ovo je samo terminoloski problem. Sam SQL mi nije problem. Znam da izracunam, ali ne znam sta da kombinujem od obelezja da bi dosao do pravog rezultata.
[ sule99 @ 07.06.2011. 10:05 ] @
Pitanje 1: Ako traži po pojednim vrstama transkacije, a tako si napisao, onda radiš valjda sumiranje UPLATE, kao jedne vrste transkacije, a zatim sumiranje ISPLATE kao druge vrste transkacije. Ne vidim razlog zašto bi uopće radio njihovo međusobno zbrajanje ili oduzimanje (Kako da dobijem ukupnu vrednost transakcija po pojedinim vrstama transakcija?)

Pitanje 2: Gdje vodiš trenutno stanje na kartici? Odnosno kako izračunavaš trenutno stanje na kartici?
Kad bi imao to negdje pohranjeno i redovno radio update stanja sa svakom transkacijom, jednostavno bi napravio select trenutnog stanja, a onda i deset sa najvećim minusom. Moje mišljenje je da ti fali ta kolona...

Ako ne, idi ovom logikom...

imaš početno stanje 0 stanje 0
imaš uplatu 50 stanje 50
imaš uplatu 100 stanje 150
imaš isplatu 200 stanje -50

Iz ovoga je zaključak da ide UPLATA(50+100) - ISPLATA(200) da dobiješ pravo stanje (-50). i onda fino napraviš top 10 sa ORDER BY stanje ASC...
[ Koce @ 07.06.2011. 10:16 ] @
DEBITNA kartica je ona sa koje ti se sredstva skidaju (ili uplacuju) odjednom za celi iznos,
KREDITNA je ona koja ti isplate radi u ratama (plus kamata), ukratko....

Najcesce u takvim tabelama (analitickim) imas kolone "iznos" i "duguje_potrazuje" (dp), tj uplata ili isplata - sa vrednostima 1 ili -1, tako da stanje dobijas kao sum(iznos*dp).
Sa ovakim podatkom onda lako dobijes onih 10 sa najvecom zaduzenoscu, npr kao top 10 min(sum(iznos*dp))...
Nadam se da sam ti bar malo pomogao.

p.s. moze da se desi da imas i ono sto sule99 predlaze - kolonu sa trenutnim stanjem, ali ako ti treba stanje za neki period to ti vise ne pije vodu pa ti je najlakse da racunas kao sto sam ti napisao, ok?
[ nemshooo @ 07.06.2011. 13:07 ] @
Suletu i KOCETU prvo hvala na odgovoima. Vidite, moja je greska sto nisam naveo da radim jedan skolski primer DataWarehous-a i na njemu OLAP analizu. Ja imam u svojoj DW bazi 7 tabela dimenzija i dve tabele cinjenica, a u okviru jedne tabele cinjenica se nalaze kolone cinjenice koje imaju evidentirane UPLATE i ISPLATE za sve klijente. Te upalte i isplate mogu da budu produkt raznih vrsta tranakcija. Do stanja moram sam da dodjem. Takav je zadatak. U toj bazi se nalaze sve uplate i sve isplate klijenata (negde oko 2500 torki) i pojedinih kartica. Mene je samo zanimalo da li na osnovu takve evidencije mogu da kazem da Ukupnu vrednost transakcije (za pojedine kartice ili klijente) predstava razliku izmedju UPLATE i ISPLATE. Da bude UPLATA - ISPLATE = STANJE .To me zanima. TO je samo skolski primer baze.

Hvala jos jednom.