Dakle, imam tri tabele:
Code:
BA (ID, BID, AID, Cena, Kolicina, ...)
RS (RSID, BID, ...)
RSA (RSID, AID, Kolicina, ...)
BA (ID, BID, AID, Cena, Kolicina, ...)
RS (RSID, BID, ...)
RSA (RSID, AID, Kolicina, ...)
Relacije:
Code:
1. RS.BID = BA.BID
2. RSA.RSID = RS.RSID
3. RSA.AID = BA.AID
1. RS.BID = BA.BID
2. RSA.RSID = RS.RSID
3. RSA.AID = BA.AID
Kratko pojašnjenje:
Tabela BA predstavlja stavke porudžbenica. Tabela RS je master tabela iz sistema za praćenje reklamacija. Tabela RSA je detail tabela iz sistema za praćenje reklamacija. Po svakoj porudžbenici može da se napravi jedna ili više reklamacija (relacija 1). Za svaku reklamaciju može da se unese jedan ili više proizvoda sa porudžbenice (relacija 2). Svaki proizvod iz porudžbenice može da se pojavi jedan ili više puta u detaljima reklamacije zato što za svaku jedinicu proizvoda može da se unese drugačiji razlog za reklamaciju (relacija 3). Pri svakom unošenju nove stavke u detaljima reklamacije unosi se i količina istog proizvoda kome se dodeljuje isti razlog za reklamaciju. Ukupna količina za reklamaciju za jedan proizvod sa porudžbenice ne može da bude veća od količine tog proizvoda na porudžbenici.
Prilikom kreiranja nove reklamacije, potrebno je prikazati sve proizvode koji se nalaze na porudžbenici pod sledećim uslovima:
1. - ako za tu porudžbenicu nema reklamacija prikazati sve artikle
2a. - ako se proizvod ne nalazi u tabeli RSA (ima reklamacija za druge proizvode sa te porudžbenice),
2b. - ako se proizvod nalazi u tabeli RSA ali je ukupna količina za taj proizvod manja od količine u porudžbenici,
3. - prikazana količina mora da bude jednaka količini iz porudžbenice ili razlika između ukupne količine za taj proizvod iz reklamacije i količine iz porudžbenice.
Nadam se da nisam nešto propustio da definišem. Ja sam napravio jednostavan upit koji mi vraća jedan deo rezultata ali ne mogu da nađem optimalan način da ispoštujem sve navedene uslove. Jedino što mi pada na pamet jeste da pišem SP ili funkciju (zato što rezultat mora da bude DataSet), ali bih da probam da to izbegnem.
Pitajte ako nešto nije jasno ili ako treba još pojašnjenja.
PS: Ovo nije zadatak već praktičan problem. Svakako mogu da rešim sam (za nešto više vremena metodom probe i greške ili pomoću SP/Funkcije), ali bih voleo da vidim dali ipak može upit da reši celu stvar.
Unapred hvala
"There is a theory which states that if ever anybody discovers exactly what the
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams
Universe is for and why it is here, it will instantly disappear and be replaced by
something even more bizarre and inexplicable. There is another theory which states
that this has already happened."
-- Douglas Adams