我有一个有
的VSAM•4字节二进制无符号整数,表示6位十进制分支排序码(例如420101)
•4字节二进制无符号整数,代表一个8位数的帐号(例如12345678)
•4字节有符号整数,保存帐户的当前余额
•32字节的EBCDIC字符帐户所有者名称(例如“PAT JONES”),右侧填充空白
我希望生成如下报告
我试图这样做
INCLUDE COND=(1,7,CH,EQ,C'some sortcode')
SORT FIELDS=(1,7,CH,A)
SUM FIELDS=(9,2,BI)
但是有很多排序码。我正在考虑对所有输入进行排序,然后将每个在这些排序代码行下面具有相同排序代码的记录相加。 JCL有什么方法可以做到吗?感谢。
答案 0 :(得分:2)
试试这个:
//SORTSTEP EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD DSN=YourInputDataset,DISP=SHR
//SORTOUT DD DSN=YourOutputDataset,
// DISP=(NEW,CATLG,DELETE)
//SYSIN DD *
SORT FIELDS=(1,4,BI,A)
INREC BUILD=(1,4,BI,TO=ZD,LENGTH=6,5,4,9,4,13,32)
OUTFIL REMOVECC,
SECTIONS=(1,6,
HEADER3=(1:C'LIST OF BANK BY BRANCH',/,X,/,
1:C'SORTCODE: ',1,6,/,X,/,
1:C'ACCOUNT',10:C'BALANCE',20:C'OWNER NAME',/,
1:C'-------',10:C'-------',20:C'----------'),
TRAILER3=(X,/,
1:C'BRANCH TOTAL: ',16:TOT=(11,4,BI,EDIT=(SIIIITTT),SIGNS=(,-)))),
TRAILER1=(X,/,1:C'GRAND TOTAL: ',TOT=(11,4,BI,
EDIT=(SIIIITTT),SIGNS=(,-))),
OUTREC=(1:7,4,BI,TO=ZD,LENGTH=8,10:11,4,BI,EDIT=(SIIIITTT),
SIGNS=(,-),20:15,32)
/*
您可以在此链接找到有关SECTIONS,HEADER3和TRAILER3的更多信息:https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.iceg200/ice2cg_Sections.htm