Valor de variable en select del datawindow

Hola, necesito ayuda con algo muy fácil pero que hasta ahora no logro resolver:
Tengo el siguiente scrpt:
************
SELECT distinct cuentasporcobrar.numtra,   
        cuentasporcobrar.fecemi,   
         cuentasporcobrar.codap1 as codap,
        cuentasporcobrar.codcli,
        cuentasporcobrar.numcontrato,
        cuentasporcobrar.codven,
        Clientes.nomcli,
          (select sum(valcob) from cuentasporcobrar
            inner join tipodocumento on tipodocumento.tipdoc=cuentasporcobrar.tipdoc
            where cuentasporcobrar.codemp = :s_codemp and                              cuentasporcobrar.codap1=codap and sigdoc='-' ) as valorcob,
        (select valcob from cuentasporcobrar
            inner join tipodocumento on tipodocumento.tipdoc=cuentasporcobrar.tipdoc
            where cuentasporcobrar.codemp = :s_codemp and cuentasporcobrar.codap1=codap and sigdoc='+') as valorfac,
(if valorfac<>0  then  valorfac - valorcob else valorcob endif) as saldo ,
      FROM cuentasporcobrar  inner join tipodocumento on tipodocumento.tipdoc=cuentasporcobrar.tipdoc , clientes
   WHERE  (cuentasporcobrar.codemp=clientes.codemp) and ( cuentasporcobrar.codemp = :s_codemp )  and
                 ( cuentasporcobrar.fecemi between :d_fecini and :d_fecfin) and sigdoc='-'
             and cuentasporcobrar.codcli=clientes.codcli
   *********
Explico:
Necesito que si valorfac no recupera ningún valor me muestre en esa variable el valorcob, pero el campo me sale en blanco, este filtro está en el select del datawindow.
ya intenté de estas formas:
if valorfac=''  then  valorfac - valorcob else valorcob endif) as saldo - con esto no obtengo lo que nescesito.
if ISNULL(valorfac)  then  valorfac - valorcob else valorcob endif) as saldo - con esto me sale error.
Se que debe ser muy sencillo, pero necesito ayuda,
Gracias

1 Respuesta

Respuesta
1
Hazlo de la siguiente manera:
reemplaza todo el if por el case
(Case when valorfac <> 0 then valorfac - valorcob else valorcob end) as saldo
Con eso es suficiente.
Ha estado muy fácil, lo correcto era:
if IS NULL(valorfac)  then  valorfac - valorcob else valorcob endif) as saldo
Muchas gracias por responder...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas