PDA

Prikaži potpunu verziju : Delphi i paradox problem


popmilan76
3.5.2014, 22:10
Imam jedan problem sa Queryijem,koji spaja dve tabele...
1 tabela je artikli
2 tabela je arhiva

artikli imaju polje sifra,jedinicamere,cena,zalihe

arhiva ima sve isto samo se razlikuje umesto zalihe kolicina

odradio sam query,gde treba da mi na jednom dbgridu,za svaku sifru,odredi ulaz(sum zalihe),izlaz(sum kolicina) i da napravi razliku ulaz - izlaz

ja sam to ovako napravio,ali lose sabira,ni am ne znam zasto...

select distinct artikli.sifra,artikli.artikal,artikli.jedinicamere ,artikli.cena,sum(artikli.zalihe) as ulaz,sum(arhiva.kolicina) as izlaz,sum(artikli.zalihe) - sum(arhiva.kolicina) as Zalihe from artikli,arhiva
where artikli.sifra = arhiva.sifra
group by artikli.sifra,artikli.artikal,artikli.jedinicamere ,artikli.cena


mislim da je do ovog glupavog paradox,posto ,recimo u access,to dobro radi...inace je delphi 3 sa paradox tabelom....ne pitajte me sta radim sa tim starim alatima,ato je duga prica,....
ako moze neko da mi pogleda ovaj sql,bio bi mu zahvalan.....

po svemu sudeci,on sabere taj zbir,samo sto ga pomnozi sa brojem recorda u drugoj tabeli....kao zona sumaraka....

Ivan452
4.5.2014, 17:04
Upit deluje OK.

Ali ajde probaj ove dve stvari mozda te izbaci iz zone sumraka:
- U ovom upitu ovo DISTINCT ti je visak. Ne bi trebalo da pravi problem ali ga ti ipak skloni.
- Probaj da uradis to isto sa JOIN-om, ovo tehnicki jeste join ali ko bi ga znao, probaj.

popmilan76
4.5.2014, 18:25
ma,isto samo sto sabira nesto ni sam ne znam sta...Probao i join,jos pre,ali opet nece...napravim ja to posebno,bez dve tabele,sa jednom i sumira dobro....

Ivan452
5.5.2014, 19:53
da kojim slucajem u jednoj ili drugoj tabeli nemas vise istih sifara?

popmilan76
5.5.2014, 20:22
Naravno da imam,zato sam i napravio sifra = sifra,u drugim bazama ovo radi,al nece kod mene,znaci u Accessu radi bez problema,ali ovde nece....mora da je neka glupost,kjoju ne vidim,ili se glupost zove paradox...

Ivan452
5.5.2014, 22:25
Ako sam te dobro razumeo u ovome moze da lezi problem.

Uzmimo za primer da u tabeli artikli imas jedan artikal, a u tabeli arhiva 2 artikla pod istom sifrom.
redosled kolona je: id, jedinica mere, cena, kolicina (zalihe)

artikli
1 m 100 200

arhiva
1 m 200 400
1 m 200 600

Kada uradis join ti dobijas nesto ovako:
1 m 100 200 1 m 200 400
1 m 100 200 1 m 200 600

E kada izvrsis upit nad ovim dobijas da je:
sum(zalihe) = 400
sum(kolicina) = 1000


Ako nije u ovome problem onda... MTFBWY

ivan90BG
5.5.2014, 22:53
Ti si ga pitao da li ima više istih šifara u okviru jedne tabele (trebao si to da naglasiš), a on ti je odgovorio da se podudaraju šifre u jednoj i u drugoj (ali bez ponavljanja u okviru jedne). :)

popmilan76
5.5.2014, 23:10
Evo jos malo da razjasnim

1 tabela

Artikli

sifra artikal,jedinicamere,cene,zalihe
1 hleb kg 30 100
1 hleb kg 30 50

to je ulaz za neke artikle,sve je isto sem zaliha,gde upisujem ono sto je stiglo i moze biti bilo koji broj

druga tabela

arhiva

sifra artikal jednicamere cena kolicina
1 hleb kg 30 5
1 hleb kg 30 10
1 hleb kg 30 5

takodje sve isto,samo se menja kolicina,i to je izlaz,ono sto se proda

i ja hocu tabelu tj.upit koji glasi ovako

sifra artikal jedinicamere cena ulaz izlaz zalihe
1 hleb kg 30 150 20 130

ako sam pogresio pri gornjem upitu,kako bi trebalo da glasi taj upit

Ivan452
5.5.2014, 23:20
U tome lezi problem. Ono sto ti hoces da izvedes je nemoguce sa ovakvom strukturom baze.

Join nad one dve tabele koje si naveo dobio bi ovo:

1 hleb kg 30 100 1 hleb kg 30 5
1 hleb kg 30 100 1 hleb kg 30 10
1 hleb kg 30 100 1 hleb kg 30 5

Samim tim prva suma bi ti bila 300 (a tebi treba 150).

Moraces da drugacije koncipiras model baze da bi to izveo. Moras da imas neki jedinstveni identifikator jednog hleba u tabeli artikli i kolicine tog istog hleba u tabeli arhiva, i na osnovu njega da uradis join
Nisam siguran za sta ti je potreban ovaj model i o kom je sistemu rec tako da ne mogu da ti kazem nista prakticnije.

popmilan76
5.5.2014, 23:33
rec je o nekom projektu pos kase,sa pracenjem zaliha...kako bih to mogao izvesti,ali da ne idem bas izokola,mogao bih da napravim tri query,pa svaki racuna za sebe...ali sam mislio to uraditi u jednoj tabeli

Ivan452
5.5.2014, 23:40
onda radi sve u jednoj tabeli (mada ne kapiram kako ces hleb, da razlikujes od hleba) :).

popmilan76
6.5.2014, 0:15
ni u jednoj tabeli nije moguce ispisati hleba,nego samo hleb,posto to kompjuter radi...pomocu kojeg upita da spojim ove dve tabele,da mi ono iyracuna ili trayim nemoguce...

popmilan76
6.5.2014, 23:19
Uspeo sam ljudi,i moguce je,taman sam batalio...Hvala svima....