Šta je novo?

MySQL tri table i najveca vrednost...

dj13

Čuven
Učlanjen(a)
30.01.2002
Poruke
821
Poena
665
3 tabele

proizvodi:
proizvodi_id; proizvod...
1 | artikal1
2 | artikal2
3 | artikal3
4 | artikal4

roba:
roba_id, nabavka_id, proizvod_id...
1 | 150 | 1
2 | 150 | 2
3 | 151 | 1
4 | 152 | 3

nabavka:
nabavka_id, datum...
150 | 02-02-2006
151 | 04-02-2006
152 | 05-02-2006
153 | 08-02-2006

i cetvrta groups koja nije bitna u ovom slucaju


SQL:

SELECT proizvodi.cena_prodajna, proizvodi.proizvod, groups.group_name, roba.roba_id, roba.nabavka_id, nabavka.datum, nabavka.nabavka_id
FROM ((proizvodi LEFT JOIN groups ON groups.group_id=proizvodi.group_id) LEFT JOIN roba ON roba.proizvod_id=proizvodi.proizvod_id) LEFT JOIN nabavka ON nabavka.nabavka_id=roba.nabavka_id
WHERE show_item=1
GROUP BY proizvodi.proizvod_id
ORDER BY groups.group_id, proizvodi.proizvod

Ovaj SQL izbacuje spisak proizvoda sa datumom ulaska istog.
Problem je u tome sto mi treba da izbaci samo zadnji datum ulaska po svakom proizvodu.
Primer iz gornje tabele za:

Za Artikal1 ce izaci datum iz nabavke_id 150 02-02-2006
a potreban mi je zadnji datum nabavke artikla1 koji je nabavka_id 151 tj. 04-02-2006
Kako izvesti ovo?
poz
 
Poslednja izmena:
Mozda da stavis

ORDER BY nabavka.datum, groups.group_id, proizvodi.proizvod DESC?
 
mucky je napisao(la):
Mozda da stavis

ORDER BY nabavka.datum, groups.group_id, proizvodi.proizvod DESC?
Vec sam pokusava tako nesto, ali ne radi. Mislim da je potrebno da spojim odgovarajuce vrednosti pre sortiranja pomocu ORDER BY,koji dodje kao sminka na kraju. Mozda i gresim neka me neko ispravi. Takodje mislim da treba traziti resenje negde u WHERE uslovu
 
Poslednja izmena:
Jos ovaj wild guess i necu vise majke mi :)

SELECT proizvodi.cena_prodajna, proizvodi.proizvod, groups.group_name, roba.roba_id, roba.nabavka_id, MAX(nabavka.datum), nabavka.nabavka_id
FROM proizvodi
LEFT JOIN groups ON groups.group_id=proizvodi.group_id
LEFT JOIN roba ON roba.proizvod_id=proizvodi.proizvod_id
LEFT JOIN nabavka ON nabavka.nabavka_id=roba.nabavka_id
WHERE show_item=1
GROUP BY proizvodi.proizvod_id
ORDER BY groups.group_id, proizvodi.proizvod
 
mucky je napisao(la):
Jos ovaj wild guess i necu vise majke mi :)

SELECT proizvodi.cena_prodajna, proizvodi.proizvod, groups.group_name, roba.roba_id, roba.nabavka_id, MAX(nabavka.datum), nabavka.nabavka_id
FROM proizvodi
LEFT JOIN groups ON groups.group_id=proizvodi.group_id
LEFT JOIN roba ON roba.proizvod_id=proizvodi.proizvod_id
LEFT JOIN nabavka ON nabavka.nabavka_id=roba.nabavka_id
WHERE show_item=1
GROUP BY proizvodi.proizvod_id
ORDER BY groups.group_id, proizvodi.proizvod
Radi!!
A barem 10x sam probavao sa MAX() i al sam je kacio na MAX(nabavka.nabavka_id) i (roba.nabavka_id). Cak sam u jednom tenutku i dodao MAX na datum al sam prepravio jos nesto u kodu pa nije ispalo kako treba.
Hvala.
 
Vrh Dno