Quantcast
Channel: dBforums – Everything on Databases, Design, Developers and Administrators
Viewing all articles
Browse latest Browse all 13329

limit the rows based on the year

$
0
0
Hi,

DB2 V9.1 Z/OS


Please find the below query and help me to solve it.


We have to fetch the result set based on the Quarter value

For ex. Please find below
Code:


BASE_TABLE             

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE
AAA      A11      111      2          2013-10-26
AAA      A11      111      2          2013-12-16


based on the WORK_DATE it has two Dates,we have to fetch latest
Date with in the same Quarter(Please find below)
Code:


BASE_TABLE             

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE
AAA      A11      111      2          2013-12-16


Code:


WITH TEMP(P_LOC,P_CODE,NO_FIRST,VOL_NO,WORK_DATE)
VALUES    ('AAA','A11','111',2,'2013-10-26')
          ('AAA','A11','111',2,'2013-12-16')
          ('AAA','A11','111',2,'2011-04-15')
          ('AAA','A11','111',2,'2011-05-12')
          ('AAA','B22','111',96,'2010-01-16')
          ('AAA','B22','111',96,'2010-02-06')
          ('AAA','B22','111',96,'2010-03-26')
          ('AAA','B22','111',96,'2009-04-01')
AS(
SELECT
P_LOC
,P_CODE
,NO_FIRST
,VOL_NO
,ROW_NUMBER
 OVER(PARTITION BY
P_LOC
,P_CODE
,NO_FIRST
,YEAR(WORK_DATE)
,QUARTER(WORK_DATE)
ORDER BY WORK_DATE DESC)AS RN
FROM BASE_TABLE
WHERE
  P_LOC ='AAA'

AND NO_FIRST='111'
AND YEAR(WORK_DATE)='2014'
AND RN=1
)


Code:


BASE_TABLE             

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE
AAA      A11      111      2          2013-10-26
AAA      A11      111      2          2013-12-16 
AAA      A11      111      2          2011-04-15 
AAA      A11      111      2          2011-05-12       
AAA      B22      111      96          2010-01-16
AAA      B22      111      96          2010-02-06
AAA      B22      111      96          2010-03-26
AAA      B22      111      96          2009-04-01

ACTUAL RESULT SET (FOR YEAR(WORK_DATE)=2014)
Code:

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE    RN

AAA      A11      111      2          2013-12-16  1
AAA      A11      111      2          2011-05-12  1   
AAA      B22      111      96          2010-03-26  1
AAA      B22      111      96          2009-04-01  1


EXPECTED RESULT (FOR YEAR(WORK_DATE)=2014)
Code:

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE

AAA      A11      111      2          2013-12-16 
AAA      A11      111      2          2011-05-12       
AAA      B22      111      96          2010-03-26

EXPECTED RESULT (FOR YEAR(WORK_DATE)=2013)
Code:

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE

AAA      A11      111      2          2013-12-16 
AAA      A11      111      2          2011-05-12       
AAA      B22      111      96          2010-03-26


EXPECTED RESULT (FOR YEAR(WORK_DATE)=2012)
Code:

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE

AAA      A11      111      2          2011-05-12       
AAA      B22      111      96          2010-03-26

EXPECTED RESULT (FOR YEAR(WORK_DATE)=2011)
Code:

P_LOC    P_CODE    NO_FIRST  VOL_NO      WORK_DATE
 
 
AAA      A11      111      2          2011-05-12       
AAA      B22      111      96          2010-03-26

THANKS,

Viewing all articles
Browse latest Browse all 13329

Trending Articles