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

Program za teretanu

[es] :: Access :: Program za teretanu

[ Pregleda: 5461 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dejantomasevic
Beograd,Srbija

Član broj: 228071
Poruke: 63
*.static.sbb.rs.



Profil

icon Program za teretanu12.02.2010. u 10:35 - pre 172 meseci
Zanima me zasto mi ne radi upit u prethodnom primeru,i ako neko zna molio bih ga za pomoc.Treba da saberem polje preostalo termina iz tabele clanovi i polje broj termina iz tabele uplate i da mi se taj zbir upise u polje preostalo termina u tabeli clanovi.Ako neko zna molio bih ga za pomoc

Evo primera:

[Ovu poruku je menjao dejantomasevic dana 12.02.2010. u 12:51 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Program za teretanu12.02.2010. u 14:16 - pre 172 meseci
Ne mozes da uradis sta si naumio zato sto je u tabeli ULATE kolona [Broj termina] numericka, a u tabeli CLANOVI, kolona [Preostalo Termina] je tekstualnog tipa. Tamo cak imas vrednosti kao 'PRE' - kako ces to da saberes sa [Broj Termina]?

Problem je sto pokusavas da cuvas podatak koji se ne cuva. PreostaloTermina je racunati podatak, koji se dobija kao
PreostaloTermina = UplaceniBrojTermina - BrojIskoriscenihTermina.

Kolona [Preostalo Termina] treba da se izbaci potpuno iz tabele CLANOVI. Umesto toga napravi dva kverija, qryUplaceniTermini i qryIskorisceniTermini, pa ih na kraju uporedi =. qryBrojPreostalihTermina.

UplaceniBrojTermina = ukupan broj uplacenih termina, sto dobijas kao
qryUplaceniTermini
Code:
SELECT ID, SUM([Broj Termina]) AS UplaceniBrojTermina 
FROM UPLATE GROUP BY ID. 

U tabeli [EVIDENCIJA DOLAZAKA] zapsiujes svaki dolazak svakog clana => eto ti broj iskoriscenih termina,
qryIskorisceniTermini
Code:

SELECT ID, COUNT(*) AS BrojIskoriscenihTermina
FROM [EVIDENCIAJ DOLAZAKA]
GROUP BY ID


Sad samo uporedis rezultat iz ova dva kverija. Teorijski, ovako:
qryBrojPreostalihTermina
Code:

SELECT C.ID
, Uplaceno = nz(U.UplaceniBrojTermina,0) 
, Iskorisceno = nz(I.BrojIskoriscenihTermina,0)
, Preostalo = nz(U.UplaceniBrojTermina,0) -nz(U.UplaceniBrojTermina,0)
FROM CLANOVI AS C
LEFT JOIN qryUplaceniTermini AS U ON U.ID = C.ID
LEFt JOIN qryIskorisceniTermini AS I ON I.ID = C.ID


Poslednji kveri je napisan po MS SQL sintaksi, u Accesu to izgleda malkice drugacije, ali vidis ideju - tabel aCLANOVI pa LEFT JOIN na qryUplaceniTermini i jos jedan LEFT JOIN na qryIskorisceniTermini. To ces lako da napravis u query designeru. Obrati paznju na upotrebu NZ funkcije, za slucaj da imas clanove bez uplata, ili clanove sa uplatama a bez koriscenih termina. Podrazumeva se da si negde u programu sprecio da se koristi klub ako su svi termini iskorisceni.

Ako bas totalno ne razumes sta sam napisao, onda jos nisi spreman za resavanje ovakvih zadataka.

:-)
 
Odgovor na temu

[es] :: Access :: Program za teretanu

[ Pregleda: 5461 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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