Centar za edukaciju-BiH



#1 11.01.2016 19:54
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Problem sa DMAX
Imam mali problem neznam kako da dobijem rezultat iz ovog query-a i da mi izvuče maksimalnu vrijednost

Function AnalizaBU7()
Dim variable
SQL = "SELECT Sum([stavgk]![duguje]-[stavgk]![potrazuje]) AS iznos, Left([stavgk]![konto],3) AS Sink FROM AKTIV INNER JOIN stavgk ON (AKTIV.firma = stavgk.firmaID) AND (AKTIV.godina = stavgk.period) AND (AKTIV.ObracinskiPeriod = stavgk.ObracinskiPeriod) WHERE (((Left([stavgk]![konto],3)) ALike '6%')) GROUP BY Left([stavgk]![konto],3) HAVING (((Sum([stavgk]![duguje]-[stavgk]![potrazuje]))<0)) ORDER BY Left([stavgk]![konto],3);"
Set BU11 = CurrentDb().OpenRecordset(SQL)
variable = DMax("IZNOS", "BU11")
MsgBox variable
End Function
↑  ↓

#2 11.01.2016 22:35
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Problem sa DMAX
ovo gore sam rješio vrlo jednostavno sa TOP 1

SQL = "SELECT TOP 1 Sum([stavgk]![duguje]-[stavgk]![potrazuje]) AS iznos, Left([stavgk]![konto],3) AS Sink FROM

e sad gori problem iz predhodnog query-ija trebam izvuči drugi po veličini iznos sa top 2 ne ide jer prikaze dva reda e sad bi mi trebala pomoč jer ovo dole ne radi

variable = DMin("IZNOS", "BU11")
↑  ↓

#3 11.01.2016 23:03
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa DMAX
Da nebi pravili tvoju tabelu i popunjavali zakaci primjer lakse je jer je poprilicno lomplikovan SQL pa je tesko ispratiti.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#4 11.01.2016 23:27
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Problem sa DMAX
OVO JE ISPRAVNO SADA ZABORAVIO JEDNU TABELU

Prilozi:
Informacije o tipu datoteke za:rar  New Microsoft Access Database.rar
Preuzimanja:241
Velicina datoteke:36.94 KB

↑  ↓

#5 12.01.2016 00:45
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa DMAX
Citat:
Imam mali problem neznam kako da dobijem rezultat iz ovog query-a i da mi izvuče maksimalnu vrijednost

Moras reci iz kojeg polja trazis max vrijednost i na osnovu cega.

Probao sam i tvoj SQL ali i on je nepotpun u stvari pise da nedostaje tabela.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 12.01.2016 10:43
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Problem sa DMAX
polje iznos je vezano za max

Prilozi:
Informacije o tipu datoteke za:rar  New Microsoft Access Database.rar
Preuzimanja:245
Velicina datoteke:38.04 KB

↑  ↓

#7 12.01.2016 11:37
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa DMAX
Ih moram opet svasta nesto pitati.
Jel ti polje iznos to iz kojeg hoces da izvuces najvecu vrijednost i sledecu manju od najvece.
Bolje reci hoces da izvuces dva naveca iznosa ali zasebno.
Ima jos jedan problem.
Vidim da si napravio da budu vrijednosti negativne pa ako gledamo matematicki onda je -2 vece od -3 pa se postavlja pitanje dali treba najvece apsolutne vrijednosti.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#8 12.01.2016 12:22
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa DMAX
Kopao sam jos malo dalje pa imam nekih sugestija.
Prvo na polju obracunski period trebala bi kodna tabela, jer ako dozvolis upis tu ce biti more gresaka a posto po tom polju selektujes podatke za pretragu dobivat ces i netacne rezultate.
U ovom Query-u sto si napravio ti hoces vrijednsoti za sve firme za sve godine tih firmi i za sve obracunske periode.
To je poprilicno podataka i vjerujem kada se napuni podacima to ce sporo raditi.
Ukoliko bi izbacijo tabelu aktiv a u Query ubacio jos kriterija i to na poljima godina period i firmaId tada bi to radilo dobro.
Znaci imao bi query gdje bi prije podizanja dao uslov za koju godinu zelis obracun za koji period i koju firmu.
E sad dali bi tebe to zadovoljavalo neznam.
U svakom slucaju treba se malo ozbiljnije pozabaviti ovime.
Query moze svasta uraditi ako se raddi o podacima reda stotina a kad to predje na desetke hiljada onda je to upitno.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 12.01.2016 15:50
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Problem sa DMAX
Prvo tabela AKTIV je zamiÅ¡ljena da se kod logiranja upise aktivna firma, godina i obracunski period kod izlaza iz programa je briÅ¡e sve iz tabele tako da je samo jedan zapis moguč

drugo ako je problem u negativnoj vrijednosti prebacit ču ga u pozitivnu ako je lakÅ¡e u principu nije toliko meni bitno negativna ili pozitivna vrijednost

meni u osnovi trena da iz onog query-ja izvučem drugu po veličini vrijednost polja IZNOS odnosno u drugom tregu po veličini

nadoÅ¡o sam na ideju da ubacim TOP 2 odnosno TOP 3 i da uzmem najmanju vrijednost iz query-ija pomoču ove linije
variable = DMin("IZNOS", "BU11")
ali mi neda iz nekog razloga
Probao sam i bez navodnika za BU11 al opet neide

neznam jel ovo dovoljno objašnjenja
↑  ↓

#10 12.01.2016 18:27
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,612


Predmet:Re: Problem sa DMAX
Ma ima dosta rjesenja ali da nadjemo sto je moguce bolje.
Citat:
Prvo tabela AKTIV je zamiÅ¡ljena da se kod logiranja upise aktivna firma, godina i obracunski period kod izlaza iz programa je briÅ¡e sve iz tabele tako da je samo jedan zapis moguč

ja sam htio samo da napravim ovakav query umjrsto tvoga jer je prakticniji
PreuzmiIzvorni kôd (SQL):
  1. SELECT SUM([duguje]-[potrazuje]) AS Iznos, LEFT([stavgk]![konto],3) AS Sink
  2. FROM stavgk
  3. WHERE (((LEFT([stavgk]![konto],3)) ALike '6%') AND ((stavgk.period)=2014) AND ((stavgk.firmaID)=3) AND ((stavgk.ObracinskiPeriod)="GODISNJI"))
  4. GROUP BY LEFT([stavgk]![konto],3)
  5. HAVING (((SUM([duguje]-[potrazuje]))<0));

Ne smeta sto je negativno samo da kazemo napr. vcu apsolutnu vrijednost da bi se razumjeli koja treba.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +02:00. Trenutno vrijeme: 11: 18 am.