Я не могу определить проблему.
Ошибка получения при запуске ниже кода FYI - я запустил содержимое Proc и типы данных для OC.GRUPACCTNUMB и H.GRUPACCTNUMB в том же формате char len 17 / informat $ 17.
В сводке журнала указано: АФФЕКТИВНЫЙ КОД - ГРУППА ПО OC.GRUPACCTNUMB, CRS_CUSTNUMB, CORPNUMB, INT.RATETYPE, INT_RATE, VARY, FLATRATE, GRUPNAME
КОД НИЖЕ:
proc sql;
create table MDSRATE as
SELECT OC.GRUPACCTNUMB, CRS_CUSTNUMB, CORPNUMB, SUM (ACCTBALN), INT.RATETYPE, INT_RATE AS BASE_RATE, VARY, (INT_RATE+VARY) AS RATE, FLATRATE, GRUPNAME
FROM MDS_OC_DETL OC,
MDS_OC_IRTE_OVRD OVRD,
MDS_OC_INT_RATE INT,
MDS_BTCH_CRS CRS
WHERE OC.GRUPACCTNUMB = OVRD.GRUPACCTNUMB
AND (OVRD.ENDT='31.12.9999' OR OVRD.ENDT IS NULL)
AND OVRD.RATETYPE = INT.RATETYPE
AND INT.ENDT='31.12.9999'
AND OC.GRUPACCTNUMB = CRS.GRUPACCTNUMB
AND OC.ACCTSTUS = 'O'
AND OVRD.EFDT = (SELECT MAX(EFDT)
FROM MDS_OC_IRTE_OVRD E
WHERE E.GRUPACCTNUMB = OC.GRUPACCTNUMB)
AND OVRD.TIMECHNG = (SELECT MAX(TIMECHNG)
FROM MDS_OC_IRTE_OVRD F
WHERE F.GRUPACCTNUMB = OC.GRUPACCTNUMB
AND F.EFDT = (SELECT MAX(EFDT)
FROM MDS_OC_IRTE_OVRD G
WHERE G.GRUPACCTNUMB = OC.GRUPACCTNUMB))
AND CRS.DATE = (SELECT MAX(DATE)
FROM MDS_BTCH_CRS H
/* WHERE input(H.GRUPACCTNUMB,16.) = input(OC.GRUPACCTNUMB,16.))*/
WHERE OC.GRUPACCTNUMB = H.GRUPACCTNUMB)
GROUP BY OC.GRUPACCTNUMB, CRS_CUSTNUMB, CORPNUMB, INT.RATETYPE, INT_RATE, VARY, FLATRATE, GRUPNAME;
run;