Another approach Sorry I am not able to test these
Select * from ( select a.student_id, a.course_id, b.course_name, a.course_date, b.course_fee,effective_date,max(effective_date) over (partition by b.course_id) mx from student a inner join couse b on a.course_id=b.course_id where effective_date<=(select max(effective_date) from course where effective_date <=a.course_date) where effective_date =mx On Nov 17, 2012 1:48 PM, "Gopakumar Pandarikkal" <pandarik...@gmail.com> wrote: > Select * from > (select a.student_id, a.course_id, b.course_name, a.course_date, > b.course_fee,effective_date,max(effective_date) over (partition by > b.course_id) mx > from student a inner join couse b on a.course_id=b.course_id and > effective_date<=a.course_date) > > where effective_date =mx > On Nov 17, 2012 1:18 PM, "Gopakumar Pandarikkal" <pandarik...@gmail.com> > wrote: > >> Sorry. This is wrong >> On Nov 17, 2012 1:10 PM, "Gopakumar Pandarikkal" <pandarik...@gmail.com> >> wrote: >> >>> Updated version >>> >>> select a.student_id, a.course_id, b.course_name, a.course_date, >>> b.course_fee from student a inner join couse on a. Course_id where >>> a.course_Date <=(select max(effective_Date) from course where >>> effective_date <= a.course_date) >>> On Nov 17, 2012 1:01 PM, "Gopakumar Pandarikkal" <pandarik...@gmail.com> >>> wrote: >>> >>>> select a.student_id, a.course_id, b.course_name, a.course_date, >>>> b.course_fee from student a inner join on Course b where a.course_id = >>>> b.course_id where a.course_Date = (select max(effective_Date) from course >>>> where effective_date <= a.course_date) >>>> >>>> Try this tell me if its ok >>>> On Nov 16, 2012 6:22 AM, "SQL-Help" <sketin...@gmail.com> wrote: >>>> >>>>> I have a STUDENT table that has >>>>> Student_id >>>>> Student_name >>>>> Course_id >>>>> Course_date >>>>> >>>>> So my records look like >>>>> >>>>> 123 Kathy Smith A103 12/01/2011 >>>>> 123 Kathy Smith A102 12/01/2011 >>>>> 124 Chris Jones A103 06/01/2011 >>>>> 124 Chris Jones A102 06/01/2011 >>>>> >>>>> The I have another table COURSE >>>>> Course_id >>>>> Course_name >>>>> Course_fee >>>>> Effective_date >>>>> >>>>> A103 Accounting1 200.00 04/01/2011 >>>>> A103 Accounting1 210.00 06/01/2011 >>>>> A103 Accounting1 220.00 10/01/2011 >>>>> A102 Writing101 150.00 04/01/2011 >>>>> >>>>> >>>>> what I need is >>>>> >>>>> Student_id, Student_name, Course_id, Course_name, course_date and >>>>> Course_fee >>>>> >>>>> (based on the date a particular student signed up for the course, >>>>> course fee should be determined) >>>>> >>>>> so for >>>>> >>>>> 123 Kathy smith A103 Accounting1 12/01/2011 220.00 >>>>> 124 Chris Jones A103 Accounting1 06/01/2011 210.00 >>>>> 123 Kathy Smith A102 Writing102 12/01/2011 150.00 >>>>> 124 Chris Jones A102 Writing 102 04/01/2011 150.00 >>>>> >>>>> >>>>> >>>>> This is how I tried and it doesn't work >>>>> >>>>> select a.student_id, a.course_id, b.course_name, a.course_date, >>>>> b.course_fee >>>>> from student a left outer join on Course b where a.course_id = >>>>> b.course_id >>>>> and b.effective_Date = (select effective_Date from course where >>>>> effective_date <= a.course_date) >>>>> >>>>> This is not for my school homework..working as a junior developer (so >>>>> I created a scenario similar to my issue at work and am asking for >>>>> help). >>>>> Thank you >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Oracle PL/SQL" group. >>>>> To post to this group, send email to Oracle-PLSQL@googlegroups.com >>>>> To unsubscribe from this group, send email to >>>>> oracle-plsql-unsubscr...@googlegroups.com >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/Oracle-PLSQL?hl=en >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "Oracle PL/SQL" group. To post to this group, send email to Oracle-PLSQL@googlegroups.com To unsubscribe from this group, send email to oracle-plsql-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Oracle-PLSQL?hl=en