[ mich07 @ 17.03.2012. 08:23 ] @
Postovani forumasi,
imam jedan problem u vezi izrade upita. Naime, imam tabele: artikli (sa poljima naziv i cena), ulaz (sa poljima naziv, datumulaza i kolicinaulaza) i izlaz (sa poljima naziv, datumizlaza i kolicinaizlaza). Tabele su vezane preko polja naziv.
Podaci su sledeci:
Tabela artikli -
Code:
Naziv    cena
art1    100
art2    200
art3    300


Tabela ulaz -
Code:
naziv    datumulaza    kolicinaulaza
art1    01.01.2012        1
art2    01.02.2012        3


Tabela izlaz -
Code:
naziv    datumizlaza    kolicinaizlaza
art1    01.02.2012        2
art1    10.02.2012        2


Ono sto mi je potrebno je sledece: Na osnovu upita za odredjeni period, da izracunam razliku u datumu ulaza i izlaza kao i da saberem kolicine za isti period. Moj upit mi daje sledece podatke za dosad uneti period, a trebalo bi da kolicinu ulaza ne ponovi 2 puta jer tako daje pogresne vrednosti.

Code:
SELECT artikli.Naziv, artikli.cena, izlaz.datumizlaza, ulaz.datumulaza, izlaz.kolicinaizlaza, ulaz.kolicinaulaza
FROM (artikli INNER JOIN izlaz ON artikli.Naziv = izlaz.naziv) INNER JOIN ulaz ON artikli.Naziv = ulaz.naziv;



Code:
Naziv      cena           datumizlaza        datumulaza      kolicinaizlaza    kolicinaulaza
art1      100               01.02.2012        01.01.2012        2                1
art1      100               10.02.2012        01.01.2012        2                1


[ Dexxxl @ 17.03.2012. 20:23 ] @
A sto koristis INERJOIN. Postavi vezu na nivou tabela (sa referencijalnim integritetom) artikli 1 : ulaz vise

Probaj RIGHTJOIN umesto INERJOIN

[Ovu poruku je menjao Dexxxl dana 17.03.2012. u 21:33 GMT+1]
[ mich07 @ 17.03.2012. 22:02 ] @
Veza i jeste postavljena na nivou tabela.
Kada primenim right join dobijem sledece:

Code:
SELECT artikli.Naziv, artikli.cena, ulaz.datumulaza, ulaz.kolicinaulaza, izlaz.datumizlaza, izlaz.kolicinaizlaza
FROM (ulaz RIGHT JOIN artikli ON ulaz.naziv = artikli.Naziv) LEFT JOIN izlaz ON artikli.Naziv = izlaz.naziv
ORDER BY artikli.Naziv;


Code:
Naziv    cena    datumulaza    kolicinaulaza    datumizlaza    kolicinaizlaza
art1    100       01.01.2012         1             10.02.2012         2
art1    100       01.01.2012         1             01.02.2012         2
art2    200       01.02.2012         3        
art3    300    


Tako da se opet art1 ponavlja 2 puta.
[ Dexxxl @ 17.03.2012. 23:32 ] @
Izgleda samo ovako nesto ili slicno, nemoguce preko SQL-a sa ove 3 tabele
[ Dexxxl @ 19.03.2012. 17:29 ] @
Evo preko SQL-a iz dva cuga. Ne znam da ih slozim u jedan, a verovatno bi bio suvise komplikovan izraz