select * from myGrouper A where ddate = ; (select max(ddate) from myGrouper B where a.ino = b.ino) ; order by inoe.g. in your case
SELECT ag.nstock, ag.iid FROM Agenda ag ; WHERE ag.ddate = (select max(dDate) from Agenda ag2 ; where ag.iTraiterID = ag2.iTraiterID and ag2.dDate < vp_date)though this again have a problem if you have two (or more) records with the same date. This query will return all records.
>>> UPDATE ap ; >>> SET nstock = pd.nstock ; >>> FROM Agenda ap; >>> JOIN (; >>> SELECT ag.nstock, ag.iid FROM Agenda ag WHERE ag.ddate < (vp_date) ; >>> UNION ALL ; >>> SELECT T.nstock, dt1.iid ; >>> FROM ( ; >>> SELECT iid,itraiterId ; >>> FROM Agenda ag2 ; >>> WHERE ddate = (vp_date) ; >>> AND NOT EXISTS (SELECT * FROM Agenda ag3 ; >>> WHERE ag3.ddate < (vp_date) ; >>> AND ag3.iid = ag2.iid) ; >>> ) dt1 ; >>> JOIN Traiter T ON T.iid = dt1.itraiterId ; >>> ) pd ON ap.iid = pd.iid ; >>> WHERE ap.ddate = vp_date >>>>>>