select CUST_ACCT.ACCOUNT_NUMBER 编号,
       PARTY.party_name 单位名称,
       PS.TRX_NUMBER 帐款编号,
       PS.DUE_DATE 到期日期,
       ARPT_SQL_FUNC_UTIL.get_term_details(PS.TERM_ID, 'NAME') 付款期限,
       PS.INVOICE_CURRENCY_CODE 币别,
       PS.EXCHANGE_RATE 汇率,
       DECODE(PS.AMOUNT_DUE_REMAINING,0,TO_NUMBER(NULL),TRUNC(sysdate) - PS.DUE_DATE)  延迟天数,    &&&&--根据用户的输入日期计算延迟付款天数
       PS.ACCTD_AMOUNT_DUE_REMAINING 到期余额
from ar_payment_schedules_all ps,
     hz_parties party,
     hz_cust_accounts cust_acct
where  PS.CUSTOMER_ID = CUST_ACCT.CUST_ACCOUNT_ID(+)
       and CUST_ACCT.PARTY_ID = PARTY.PARTY_ID(+)
             
order by   CUST_ACCT.ACCOUNT_NUMBER 
上面是我写的关于计算帐款的SQL,我希望延迟天数的计算可以直接通过用户输入的时间来计算,而不是系统默认时间, 请问以上这句:    DECODE(PS.AMOUNT_DUE_REMAINING,0,TO_NUMBER(NULL),TRUNC(sysdate) - PS.DUE_DATE)  延迟天数,    &&&&--根据用户的输入日期计算延迟付款天数
 
sysdate这里应该如何写,才能接受用户输入的日期,来得到延迟的天数,求高手帮我指点一下,谢谢了!

解决方案 »

  1.   

    sysdate -> to_date(&entertime,'yyyy-mm-dd hh24:mi:ss')
      

  2.   

    感谢上面的兄弟再次的帮助,我想再问一下你,假如&entertime  这个变量我想在ERP报表中通过用户输入先后去传递给它,应该怎么写呢(就是在用到Report Builde做报表时这个应该如何写,才能像定义其它参数一样来定义)?如:  where due_date=<:P_DATE这样!!
      

  3.   

    也就是说应该如何在系统中给这个变量赋助设置参数!就好像设置where due_date=<:P_DATE这类参数一样样!!