【发布时间】:2015-12-13 06:29:33
【问题描述】:
我在 Oracle PL/SQL 中有一个查询,它根据客户延迟支付的账单百分比给出了一个按客户名称排序的列表。查询如下
With date_check AS
(Select *
From tblBills
Where Pay_Date Between CAST('2015-09-01' AS DATE) And CAST('2015-09-30' AS DATE)
)
Select ddo.CODE As "Customer Name",
100.0 * ROUND(Cast(Count(fpp.ID) AS FLOAT) /
( Select Count(fpp2.ID)
From date_check fpp2
Join tblMethods dppm2
On fpp2.PAY_METHOD = dppm2.ID
Where dppm2.IS_DELAYED = 'Y'), 2) As "% Delay"
From date_check fpp
Join tblMethods dppm On fpp.PAYMENT_METHOD_ID = dppm.ID
Join tblCustomers ddo On fpp.CUSTOMER_ID = ddo.ID
Where dppm.IS_DELAYED = 'Y'
Group By ddo.CODE
Order By Count(fpp.ID) Desc
当我运行此查询时,我收到以下异常:
ORA-01861:文字与格式字符串不匹配
01861. 00000 - “文字与格式字符串不匹配”
*原因:输入中的文字必须与输入中的文字长度相同 格式字符串(前导空格除外)。如果 “FX”修饰符已打开,文字必须完全匹配, 没有多余的空格。
*操作:更正格式字符串以匹配文字。
怎么了?
【问题讨论】:
标签: sql string oracle date literals