Crystal 案例 Datediff 范围使用 getdate
Crystal CASE Datediff range using getdate
正在尝试将以下 SQL 转换为 CR 中的 Case 语句:
CASE
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 59 AND - 30 THEN '1-[Delq 30-59]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 179 AND - 60 THEN '2-[Delq 60-179]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 359 AND - 180 THEN '3-[Delq 180-359]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) < - 360 THEN '5-[Delq 360+]' ELSE NULL
不确定 CASE 还是 IF/THEN 更适合这个。将 'dd' (not recognized in CR?)
替换为 DAY
。还将 Getdate()
替换为 CurrentDate
,将 BETWEEN
替换为 TO
。
if Datediff(Day,{Q_LoanInfo.DueDate},currentdate) to - 59 AND - 30 THEN '1-[Delq 30-59]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) to - 179 AND - 60 THEN '2-[Delq 60-179]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) to - 359 AND - 180 THEN '3-[Delq 180-359]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) <= - 360 THEN '5-[Delq 360+]' ELSE 'NULL'
当前出现以下错误:"Not enough arguments have been given to this function"。
有人可以告诉我我做错了什么吗?这应该填充日期范围桶。
Select Datediff(Day,currentdate,{Q_LoanInfo.DueDate})
Case 30 to 59 : '1-[Delq 30-59]'
Case 60 to 179 : '2-[Delq 60-179]'
Case 180 to 359 : '3-[Delq 180-359]'
Case >= 360 : '5-[Delq 360+]'
Default : 'NULL'
;
对于语法总是检查联机帮助然后尝试编写公式
试试这个:
if (Datediff("d",{Q_LoanInfo.DueDate},currentdate) in (- 59 to - 30 ))THEN '1-[Delq 30-59]'
else
if (Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) in (- 179 to - 60)) THEN '2-[Delq 60-179]'
else
if Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) in (- 359 to - 180 ))THEN '3-[Delq 180-359]'
else
if Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) <= - 360) THEN '5-[Delq 360+]'
ELSE 'NULL'
正在尝试将以下 SQL 转换为 CR 中的 Case 语句:
CASE
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 59 AND - 30 THEN '1-[Delq 30-59]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 179 AND - 60 THEN '2-[Delq 60-179]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) BETWEEN - 359 AND - 180 THEN '3-[Delq 180-359]'
WHEN Datediff(dd, getdate(), THS.Q_LoanInfo.DueDate) < - 360 THEN '5-[Delq 360+]' ELSE NULL
不确定 CASE 还是 IF/THEN 更适合这个。将 'dd' (not recognized in CR?)
替换为 DAY
。还将 Getdate()
替换为 CurrentDate
,将 BETWEEN
替换为 TO
。
if Datediff(Day,{Q_LoanInfo.DueDate},currentdate) to - 59 AND - 30 THEN '1-[Delq 30-59]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) to - 179 AND - 60 THEN '2-[Delq 60-179]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) to - 359 AND - 180 THEN '3-[Delq 180-359]' else
if Datediff(Day,{Q_LoanInfo.DueDate},CurrentDate) <= - 360 THEN '5-[Delq 360+]' ELSE 'NULL'
当前出现以下错误:"Not enough arguments have been given to this function"。
有人可以告诉我我做错了什么吗?这应该填充日期范围桶。
Select Datediff(Day,currentdate,{Q_LoanInfo.DueDate})
Case 30 to 59 : '1-[Delq 30-59]'
Case 60 to 179 : '2-[Delq 60-179]'
Case 180 to 359 : '3-[Delq 180-359]'
Case >= 360 : '5-[Delq 360+]'
Default : 'NULL'
;
对于语法总是检查联机帮助然后尝试编写公式
试试这个:
if (Datediff("d",{Q_LoanInfo.DueDate},currentdate) in (- 59 to - 30 ))THEN '1-[Delq 30-59]'
else
if (Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) in (- 179 to - 60)) THEN '2-[Delq 60-179]'
else
if Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) in (- 359 to - 180 ))THEN '3-[Delq 180-359]'
else
if Datediff("d",{Q_LoanInfo.DueDate},CurrentDate) <= - 360) THEN '5-[Delq 360+]'
ELSE 'NULL'