I'm Using Amazon Redshift. I need to get the MAX Date in the column by Month wise. The Example is as below.
There are 5 tables:
vendor
vendor_pkg
vendor_pkg_category
vendor_load
vendor_load_status
vendor  V
vendor_id   vendor_name
-----------------------
1            L&T
2            Reuters
3            IBM
4            INfosys
vendor_pkg  VP
vendor_pkg_id  vendor_pkg_category_id   vendor_pkg_name  vendor_id
------------------------------------------------------------------
1              1                        Futures          1
2              1                        Fairvalue        1
3              3                        Equities         1
4              2                        MBS              1
5              2                        INTL Price       2
6              4                        Muni             2
vendor_pkg_category  VPC
vendor_pkg_category_id  category_name
-------------------------------------
1                       Price
2                       Security
3                       Rating
4                       value
Vendor_load  VL
vendor_load_id  eval_date   load_status_id  vendor_pkg_id
---------------------------------------------------------
1               2014-06-05  1               1
2               2014-06-20  1               1
3               2014-07-05  2               2
4               2014-07-20  1               2
5               2014-06-05  2               3
6               2014-06-20  2               3
7               2014-07-05  1               4
8               2014-07-20  2               4
vendor_load_status  VLS
load_status_id  load_status_name
--------------------------------
1               Success
2               Failed
Result table should be like this:
v.vendor  vpc.category_name  vp.ven_pkg_name  vl.eval_date  vls.status_name
---------------------------------------------------------------------------
L&T       Price              futures          2014-06-20    Success
L&T       Price              fairvalue        2014-07-20    Success
L&T       Security           MBS              2014-07-20    Failed
L&T       Rating             Equities         2014-06-20    Failed
I use the following query. But it displays the data for one month only:
SELECT DISTINCT v.vendor_name AS vendor,
       vpc.category_name AS V_Type,
       vp.vendor_pkg_name AS Package_name,
       vl.eval_date AS C_Date,
       vls.load_status_name AS Status
FROM ces_idw.vendor v,
     ces_idw.vendor_pkg_category vpc,
     ces_idw.vendor_load vl,
     ces_idw.vendor_pkg vp,
     ces_idw.vendor_load_status vls
WHERE (vl.eval_date) IN (SELECT DISTINCT MAX(vl.eval_date)
                         FROM ces_idw.vendor_load vl
                         WHERE v.vendor_id = vp.vendor_id
                         and v.vendor_name = 'IDC'
                         AND   vp.vendor_pkg_id = vl.vendor_pkg_id
                         AND   TO_CHAR(vl.eval_date,'yyyy-mm') = '2014-06'
                         GROUP BY vl.vendor_pkg_id,
                                  v.vendor_name)                               
AND   vp.vendor_pkg_category_id = vpc.vendor_pkg_category_id
AND   vp.vendor_pkg_id = vl.vendor_pkg_id
AND   vl.load_status_id = vls.load_status_id
ORDER BY vp.vendor_pkg_name
when I use TO_CHAR(vl.eval_date,'yyyy-mm')between '2014-06' and '2014-07' it shows the result for '2014-07'.
 
     
     
    