|
View previous topic :: View next topic
|
| Author |
Message |
techslam
New User
Joined: 03 Dec 2010 Posts: 87 Location: India
|
|
|
|
Hi,
I have below SQL in my sort input file -
| Code: |
SELECT *
FROM XYZ.TABLE1
WHERE EFFECTIVE_DATE = 'DD.MM.YYYY'
AND END_DATE = 'DD.MM.YYYY'
|
I want to run a SYNCSORT job and get an output file with date changed to previous months day 1 as shown below
| Code: |
SELECT *
FROM XYZ.TABLE1
WHERE EFFECTIVE_DATE = '01.11.2014'
AND END_DATE = '30.11.2014'
|
Can someone pleae help me with this.
Thanks for all the help. |
|
| Back to top |
|
 |
Pandora-Box
Global Moderator
.jpg)
Joined: 07 Sep 2006 Posts: 1592 Location: Andromeda Galaxy
|
|
|
|
| Check on SYMNAMES |
|
| Back to top |
|
 |
JAYACHANDRAN THAMPY
New User
Joined: 06 Jun 2006 Posts: 8
|
|
|
|
Which version of Syncsort you are using?. If you are using Syncsort v1.4, you can try the below JCL. Apart from sort, you can use simple Rexx,Filemanager etc to achieve the same.
| Code: |
//STEP010 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
SELECT *
FROM XYZ.TABLE1
WHERE EFFECTIVE_DATE = 'DD.MM.YYYY'
AND END_DATE = 'DD.MM.YYYY'
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:DATE(DM4.),81:C'01',
81:DATEADD=(81,10,DT=(DM4.),-1,DAY),
91:C'01',93:83,8,101:SEQNUM,1,ZD)),
IFTHEN=(WHEN=(101,1,ZD,EQ,3),OVERLAY=(25:91,10)),
IFTHEN=(WHEN=(101,1,ZD,EQ,4),OVERLAY=(17:81,10))
OUTFIL BUILD=(1,80) |
Output:
| Code: |
SELECT *
FROM XYZ.TABLE1
WHERE EFFECTIVE_DATE = '01.11.2014'
AND END_DATE = '30.11.2014'
|
|
|
| Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Alternatively, you can use the LASTDAYM subparameter to achieve the same:
| Code: |
//STEP01 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=*
//SORTIN DD *
SELECT *
FROM XYZ.TABLE1
WHERE EFFECTIVE_DATE = 'DD.MM.YYYY'
AND END_DATE = 'DD.MM.YYYY'
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(81:DATE2-1,C'01',91:81,8,Y4T,LASTDAYM,TOGREG=Y4W(.),
81:91,10,84:C'01')),
IFTHEN=(WHEN=(1,1,CH,EQ,C'W'),OVERLAY=(25:81,10)),
IFTHEN=(WHEN=(1,1,CH,EQ,C'A'),OVERLAY=(17:91,10)) |
|
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|