Discussion:
upit - oracle
(prestaro za odgovor)
amigo
2009-10-08 17:36:33 UTC
Permalink
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl aa,
cjenik cc where

cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)

and aa.sifra=cc.artikl



htio bih iz dvije tablice izvuèi odgovarajuæu cijenu artikla. Cijene
artikala su smje¹tene u tablici CJENIK, ali za jednu sufru artikla postoji
vi¹e zapisa. Moram izvuèi najstariji datum za svaki artikl. Ovaj gornji upit
mi ne radi dobro jer mi izvlaèi i dalje vi¹e redova. Gdje grije¹im?
Crle
2009-10-08 19:13:26 UTC
Permalink
Post by amigo
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl aa,
cjenik cc where
cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)
and aa.sifra=cc.artikl
htio bih iz dvije tablice izvuči odgovarajuću cijenu artikla. Cijene
artikala su smještene u tablici CJENIK, ali za jednu sufru artikla postoji
više zapisa. Moram izvuči najstariji datum za svaki artikl. Ovaj gornji upit
mi ne radi dobro jer mi izvlači i dalje više redova. Gdje griješim?
Nisi povezao cjenik u subqueriu,najstariji ( ili si mislio najnoviji
datum ?) datum bi bio min(datum) i ne treba ti grupiranje, otprilike bi
to trebalo izgledati ovako:


select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where cc.datum in
(select min(cc1.datum)
from cjenik cc1
where
and aa.sifra=cc1.artikl)
and aa.sifra=cc.artikl
Crle
2009-10-08 19:18:52 UTC
Permalink
Post by Crle
Post by amigo
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl
aa, cjenik cc where
cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)
and aa.sifra=cc.artikl
htio bih iz dvije tablice izvuči odgovarajuću cijenu artikla. Cijene
artikala su smještene u tablici CJENIK, ali za jednu sufru artikla
postoji više zapisa. Moram izvuči najstariji datum za svaki artikl.
Ovaj gornji upit mi ne radi dobro jer mi izvlači i dalje više redova.
Gdje griješim?
Nisi povezao cjenik u subqueriu,najstariji ( ili si mislio najnoviji
datum ?) datum bi bio min(datum) i ne treba ti grupiranje, otprilike bi
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where cc.datum in
(select min(cc1.datum)
from cjenik cc1
where
and aa.sifra=cc1.artikl)
and aa.sifra=cc.artikl
ili

select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
where
group by cc.artikl)
and aa.sifra=cc.artikl
Crle
2009-10-08 19:20:37 UTC
Permalink
Post by amigo
Post by Crle
Post by amigo
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl
aa, cjenik cc where
cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)
and aa.sifra=cc.artikl
htio bih iz dvije tablice izvuči odgovarajuću cijenu artikla. Cijene
artikala su smještene u tablici CJENIK, ali za jednu sufru artikla
postoji više zapisa. Moram izvuči najstariji datum za svaki artikl.
Ovaj gornji upit mi ne radi dobro jer mi izvlači i dalje više redova.
Gdje griješim?
Nisi povezao cjenik u subqueriu,najstariji ( ili si mislio najnoviji
datum ?) datum bi bio min(datum) i ne treba ti grupiranje, otprilike
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where cc.datum in
(select min(cc1.datum)
from cjenik cc1
where
and aa.sifra=cc1.artikl)
and aa.sifra=cc.artikl
ili
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
where
group by cc.artikl)
and aa.sifra=cc.artikl
... jedan where viška

ovako:

select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
group by cc.artikl)
and aa.sifra=cc.artikl
amigo
2009-10-08 19:48:31 UTC
Permalink
Post by amigo
Post by Crle
Post by amigo
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl aa,
cjenik cc where
cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)
and aa.sifra=cc.artikl
htio bih iz dvije tablice izvuèi odgovarajuæu cijenu artikla. Cijene
artikala su smje¹tene u tablici CJENIK, ali za jednu sufru artikla
postoji vi¹e zapisa. Moram izvuèi najstariji datum za svaki artikl.
Ovaj gornji upit mi ne radi dobro jer mi izvlaèi i dalje vi¹e redova.
Gdje grije¹im?
Nisi povezao cjenik u subqueriu,najstariji ( ili si mislio najnoviji
datum ?) datum bi bio min(datum) i ne treba ti grupiranje, otprilike bi
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where cc.datum in
(select min(cc1.datum)
from cjenik cc1
where
and aa.sifra=cc1.artikl)
and aa.sifra=cc.artikl
ili
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
where
group by cc.artikl)
and aa.sifra=cc.artikl
... jedan where vi¹ka
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
group by cc.artikl)
and aa.sifra=cc.artikl
Puno hvala, sve radi,samo mala sitnica kod grupiranja ide "group by cc1." a
ne cc. Dobro si primjetio mislio sam na najnoviji datum, znaèi MAX. Kako da
ti se oduŸim?
Crle
2009-10-09 19:37:22 UTC
Permalink
Post by amigo
Post by Crle
Post by amigo
Post by Crle
Post by amigo
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum from artikl aa,
cjenik cc where
cc.datum in (select max(cc.datum) from cjenik cc group by cc.artikl)
and aa.sifra=cc.artikl
htio bih iz dvije tablice izvuči odgovarajuću cijenu artikla. Cijene
artikala su smještene u tablici CJENIK, ali za jednu sufru artikla
postoji više zapisa. Moram izvuči najstariji datum za svaki artikl.
Ovaj gornji upit mi ne radi dobro jer mi izvlači i dalje više redova.
Gdje griješim?
Nisi povezao cjenik u subqueriu,najstariji ( ili si mislio najnoviji
datum ?) datum bi bio min(datum) i ne treba ti grupiranje, otprilike bi
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where cc.datum in
(select min(cc1.datum)
from cjenik cc1
where
and aa.sifra=cc1.artikl)
and aa.sifra=cc.artikl
ili
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
where
group by cc.artikl)
and aa.sifra=cc.artikl
... jedan where viška
select distinct aa.sifra, aa.naziv, cc.cijena, cc.datum
from artikl aa, cjenik cc
where (cc.artikl,cc.datum) in
(select cc1.artikl,min(cc1.datum)
from cjenik cc1
group by cc.artikl)
and aa.sifra=cc.artikl
Puno hvala, sve radi,samo mala sitnica kod grupiranja ide "group by cc1." a
ne cc. Dobro si primjetio mislio sam na najnoviji datum, znači MAX. Kako da
ti se odužim?
Je, ide cc1,
nema problema , možda malo grupa živne :)
t
2009-10-09 22:06:37 UTC
Permalink
Post by Crle
nema problema , možda malo grupa živne :)
to bi bilo dobro al tesko.
previse posla, premalo ljudi a 24 sata za spavanje, posao i ostalo su
premalo za taj mali krug ljudi da bi se jos i tu 'cesce' pojavljivali.
cheers.

Loading...