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'