I have made a view(joining four tables) like below:
ID  |  BookID  |    date    |  points  |
 1  |    11    | 2014-11-01 |    15    |
 1  |    11    | 2015-01-01 |    16    |
 1  |    11    | 2014-12-01 |    17    |
 1  |    12    | 2014-02-11 |    18    |
 1  |    12    | 2014-03-11 |    19    |
 1  |    12    | 2014-04-11 |    15    |
 1  |    13    | 2014-12-23 |    121   |
 1  |    14    | 2014-01-15 |    113   |
 1  |    14    | 2014-02-08 |    112   |
I want the result of this view as below
ID  |  BookID  |    Date     |  points  |
 1  |    11    |  2015-01-01 |    16    |
 1  |    12    |  2014-04-11 |    15    |
 1  |    13    |  2014-12-23 |    121   |
 1  |    14    |  2014-02-08 |    112   |
It should be like Distincit Book ID with max date and showing as seprate points. So far i have tried the group by with join and group by with date. But it is getting a bit over as i am unable to find a solution to this.
My Query is:
SELECT m1.* FROM viewPoints m1 LEFT JOIN viewPoints m2 
ON (m1.BookID = m2.BookID AND m1.Date < m2.Date)
WHERE m1.ID= 1 and m2.Date IS NULL
ORDER BY m1.BookID
Any help! Thanks in Advance.
 
     
     
    