|
[ hibo @ 14.12.2009. 17:40 ] @
| Pozdrav
Potrebna mi je pomoć oko izrada baze za vođenje minimalnih i maksimalnih zaliha robe u skladištu.
Imam tabelu sa sledećim podacima: sifra, naziv, potrosnja (prosječna mjesečna potrošnja) i stanje (trenutno stanje skladišta). Prva stvar koju moram napraviti je da na osnovu prosječne potrošnje dobijem podatke minimalnih i maksimalnih zaliha . Gdje mogu unijeti funkciju koja će mi izbaciti podatak za čitavu kolonu (npr. 30% od prosječne mjsečne potrošnje) koja predstavlja minimalne zalihe. Imam oko 2.000 artikala, tako da će mi ovo biti od velike pomoći. Isto tako moram napraviti novu kolonu koja će predstavljati maksimalne zalihe (npr. 120 % prosječne mjesečne potrošnje).
E sad, ono što meni treba je da na osnovu ovih podataka dobijem izvještaj koji će me obavještavati kada stanje određene robe u skladištu bude ispod minimalnih, odnosno iznad maksimalnih zaliha.
Nemam puno iskustva sa radom u accessu, pa bih vas zamolio da mi date smjernice odakle da krenem. Kako i gdje da definišem min/max zalihe i na koji način bih mogao napraviti upit ili izvještaj sa potrebnim podacima. Svaka pomoć je dobrodošla.
Unaprijed hvala.
|
[ hibo @ 14.12.2009. 22:03 ] @
Uspio sam u Excel-u dobiti vrijednosti min i max zaliha pravljenjem funkcije na osnovu vrijednosti prosječne potrošnje.
Bar je to bilo jednostavno :D.
Znači sad u tabeli imam sledeće kolone:
sifra, naziv, min_zalihe, max_zalihe, stanje.
Podatke u kolonu "stanje" bih uvozio po potrebi iz software-a za praćenje proizvodnje. Zbog toga mi je potrebna kolona "sifra" jer bi preko nje povezivao podatke.
Kako sad da u Accessu napravim upit da mi izbaci artikle koji su ispod minimalnih, odnosno iznad max zaliha.
Da li postoji mogućnost da u koloni "stanje" oni artikli koji su ispod min zaliha budu označeni npr. crvenom bojom, a oni iznad max zaliha plavom bojom i da nakon toga preko upita izbaci mi npr. samo one označene crvenom bojom, koji bi predstavljali artikle ispod min zaliha?
Ili neki drugi, jednostavniji način...
[ captPicard @ 15.12.2009. 10:04 ] @
Možda ovako nekako:
Code: select sifra, naziv, prosjek*1,2 as max, prosjek*0,3 as min, stanje from tablica
[ hibo @ 16.12.2009. 22:04 ] @
Hvala captPicard. To mi je pomoglo.
Sad trebam da iz kolone "min" i "stanje" dobijem samo rezultate koji zadovoljavaju uslov da je stanje<min.
Pokušavao sam nešto, ali bezuspješno, pa opet molim za pomoć sa code-om.
[ captPicard @ 17.12.2009. 00:00 ] @
Citat: hibo: Hvala captPicard. To mi je pomoglo.
Sad trebam da iz kolone "min" i "stanje" dobijem samo rezultate koji zadovoljavaju uslov da je stanje<min.
Pokušavao sam nešto, ali bezuspješno, pa opet molim za pomoć sa code-om.
Možeš ovako nekako (pre kasno mi je za razmišljati, ali ako ne uspiješ, slobodno reci, pa ti pomognem):
Code: select
iif(stanje < prosjek*0.3, prosjek*0.3, 0) as min
i onda napraviš još jedan select iz ovog select iif ovako nekako:
Code:
select * from(
select
iif(stanje < prosjek*0.3, prosjek*0.3, 0) as min from tablica)
where min <> 0)
iif ti inače funkcionira ovako:
iif(uvjet, true, false)
[ hibo @ 17.12.2009. 22:42 ] @
Ovim sam dobio odgovarajuću kolonu, samo sad je problem što ne vidim na koje se artikle odnosi.
Znači trebao bih npr. iz tabele "artikli" dodati u prethodni rezultat i kolone "sifra" i "naziv".
Kako bi code izgledao sa ovim?
[ captPicard @ 18.12.2009. 07:33 ] @
Code: select * from(
select sifra, naziv, prosjek*1,2 as max, prosjek*0,3 as min, stanje,
iif(stanje < prosjek*0.3, prosjek*0.3, 0) as min from tablica)
where min <> 0)
[ hibo @ 21.12.2009. 14:46 ] @
I ovo mi je pomoglo, ali sad se pojavio novi problem.
Sad imam dvije tabele. U tabeli "artikli" imam kolone: sifra, naziv, prosjek, a u tabeli "stanje": sifra, naziv, stanje.
Tabele su povezane preko sifri. Kako sad da modifikujem prethodni code da bi mi "stanje" vukao iz tabele "stanje"?
Naravno uslov ostaje isti, da prikaže podatke gdje je stanje<min.
[ captPicard @ 21.12.2009. 22:46 ] @
Citat: hibo: I ovo mi je pomoglo, ali sad se pojavio novi problem.
Sad imam dvije tabele. U tabeli "artikli" imam kolone: sifra, naziv, prosjek, a u tabeli "stanje": sifra, naziv, stanje.
Tabele su povezane preko sifri. Kako sad da modifikujem prethodni code da bi mi "stanje" vukao iz tabele "stanje"?
Naravno uslov ostaje isti, da prikaže podatke gdje je stanje<min.
Code: Select t1.sifra, t1.naziv, t1.prosjek, t2.stanje from tabela1 as t1 inner join
tabela2 as t2 on t1.sifra = t2.sifra where t2.stanje < t1.min
Ako nemaš ovaj uslov t1.min u tabeli samo stavi formulu koju smo prije napisali.
Inače, mislim da ti nisu dobro definirane tabele (čim ti se pojavljuje naziv artikla u obe tabele, sigurno nisu dobro definirane, ako se mijenja naziv artikla u t1, šta je sa nazivom u t2?). Napiši ovdje strukturu oba dvije tabele.
Prouči malo normalizaciju i 3 normalne forme.
Prouči malo inner join naredbe, puno ćeš ih koristiti.
[ hibo @ 22.12.2009. 21:21 ] @
Još jednom hvala captPicard.
Uz tvoju pomoć uspio sam napraviti ono što mi treba.
Zasad sve funkcioniše i nadam se da će poslužiti svrsi.
U svakom slučaju nastavljam sa učenjem accessa i praćenjem ovog foruma.
Veliki pozdrav!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|