クリア！

単一のSQLに含めることができます：

proc sql;
    テーブル出力を作成します
    t_entrada.sk_contratoを選択してください、
           sum（t_entrada.saldo_impagado、-t_saldos.saldo_recuperado）a_impaidバランスとして
    t_entradaとしての入力から
    内側の結合室
    on t_entrada.sk_contrato = t_saldos.sk_contrato
    sk_contrato descによる注文;
やめる;


基本的に、リゾートによるバランス入力の左結合から起動テーブルを作成しています。
エントリテーブルにさらに多くの変数を保持したい場合は、選択に追加する必要があります。

また、あなたが望む場合に備えて、コードをコメントで残します。


proc sql;
    テーブル出力を作成 / *新しい出発テーブル * /
    T_ENTENTRADA.SK_CONTRATOを選択します。
           sum（t_entrada.saldo_impagado、-t_saldos.saldo_recuperado）as balance_impaid / *入り口のバランスバランスでhinorでbalance_impaidを計算します * / /
    t_entrada / *として入力からテーブル入力を示します * /
    内側の結合balds_recuping（where =（＆date_negocio lt date_fv and＆date_negocio ge date_iv））as t_saldos / *表を示します。
    t_entrada.sk_contrato = t_saldos.sk_contrato / * sk_contrato * /に応じて交差点を実行します
    sk_contrato descによる注文;/ *結果のテーブルを注文します */
やめる;
¡Claro!

Podemos incluirlo en un único proc sql:

proc sql;
    create table salida as     
    select t_entrada.sk_contrato,
           sum(t_entrada.saldo_impagado, -t_saldos.saldo_recuperado) as saldo_impagado
    from entrada as t_entrada
    inner join saldos_recuperados(where=(&fecha_negocio lt fecha_fv and &fecha_negocio ge fecha_iv)) as t_saldos
    on t_entrada.sk_contrato = t_saldos.sk_contrato
    order by sk_contrato desc;
quit;


Básicamente, estamos creando la tabla salida a partir de un left join de la tabla saldos_recuperados (filtrada por los valores de las variables fecha_fv y fecha_iv y la macrovariable fecha_negocio) a la tabla de entrada, y calculando un nuevo saldo_impagado ajustándolo minorando los de la tabla de entrada por los saldo_recuperado.
Si quisieras conservar mas variables de la tabla entrada, deberías añadirlas al select.

También te dejo el código con comentarios, por si lo prefieres:


proc sql;
    create table salida as  /*  Nueva tabla salida       */     
    select t_entrada.sk_contrato,        /*  listamos las variables a conservar de la tabla entrada      */
           sum(t_entrada.saldo_impagado, -t_saldos.saldo_recuperado) as saldo_impagado   /*  calculamos saldo_impagado minorandolo con saldo_recuperado de la tabla entrada      */
    from entrada as t_entrada   /* Indicamos tabla entrada    */     
    inner join saldos_recuperados(where=(&fecha_negocio lt fecha_fv and &fecha_negocio ge fecha_iv)) as t_saldos  /* Indicamos tabla saldos_recuperados, filtrada por los valores de las variables fecha_fv y fecha_iv y la macrovariable fecha_negocio    */  
    on t_entrada.sk_contrato = t_saldos.sk_contrato       /*  realizamos el cruce en función del sk_contrato  */  
    order by sk_contrato desc;  /*  ordenamos la tabla resultante     */     
quit;