SELECT
SECTION,
LAST_MDS_MON,
DAYS_BETWEEN
FROM
(
SELECT
SECTION,
LAST_MDS_MON,
DAYS_BETWEEN,
RANK() OVER (PARTITION BY SECTION ORDER BY LAST_MDS_MON desc) AS RANK
FROM
(
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_AC_REV
GROUP BY STATE_CODE,SHRP_ID
UNION ALL
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_JPCC_REV
GROUP BY STATE_CODE,SHRP_ID
UNION ALL
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_CRCP_REV
GROUP BY STATE_CODE,SHRP_ID
)
)
WHERE
RANK = 1
Selecting the MAX value from a subquery of three tables
Question
I am trying to select the SECTION,LAST_MDS_MON,DAYS_BETWEEN where the LAST_MDS_MON is MAX for a distinct SECTION, from the query below...PLEASE HELP!
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_AC_REV
GROUP BY STATE_CODE,SHRP_ID
UNION ALL
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_JPCC_REV
GROUP BY STATE_CODE,SHRP_ID
UNION ALL
SELECT STATE_CODE||SHRP_ID AS SECTION,MAX(SURVEY_DATE) AS LAST_MDS_MON,((ADD_MONTHS(CURRENT_DATE,18))-TO_DATE(MAX(SURVEY_DATE))) AS DAYS_BETWEEN
FROM MON_DIS_CRCP_REV
GROUP BY STATE_CODE,SHRP_ID
La solution
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow