将访问 if 语句转换为优势代码

Posted

技术标签:

【中文标题】将访问 if 语句转换为优势代码【英文标题】:Convert access if statement to advantage code 【发布时间】:2019-04-10 14:11:28 【问题描述】:

我在访问查询中有以下代码。我想将其转换为一个案例,或者如果在优势 sql.

我发布了我的案例陈述,它给了我一个无效的运算符 > 错误代码。我在 devzone 上查看了优势数据库,它表明我可以使用 > 运算符。

任何帮助都会很棒

按时完成:IIf([CompletedDate] Is Null Or Int([CompletedDate])>[DueDate],"No","Yes")

   case 
   when completeddate is null then 'No'
   when completeddate > duedate then 'No'
   else 'Yes'
   End as "CompletedDateCase"

【问题讨论】:

【参考方案1】:

这应该做你想做的:

iff(completeddate is null or completeddate > duedate, "No", "Yes") as CompletedDateCase

我不确定您为什么要尝试将日期列转换为整数。

哦,如果你想另辟蹊径:

(CASE WHEN CompletedDate Is Null Or CAST(CompletedDate as INT) > DueDate
      THEN 'No' ELSE 'Yes'
 END) as CompletedDateCase

您应该能够比较日期和日期/时间:

(CASE WHEN CompletedDate Is Null Or CompletedDate > DueDate
      THEN 'No' ELSE 'Yes'
 END) as CompletedDateCase

您可能想检查这是否符合您实际想要的逻辑。例如,时间分量可能会影响结果。

【讨论】:

我使用 iff(completeddate is null or completeddate > duedate, "No", "Yes") 作为 CompletedDateCase 并且我收到以下错误 poQuery: Error 7200: AQE Error: State = S0000;本机错误 = 2124; [SAP][Adv​​antage SQL Engine]Invalid operand for operator: > -- SQL 语句中的错误位置是:281 (line: 3 column: 31) 那个 int 可以访问,我不是使用它的开发者。在我之前的某个人在访问中做到了这一点,我试图将其纳入优势 sql 的视图中 @BrianK。 . .第二个查询似乎是您想要的。 仍然得到一个无效的运算符操作数 > 想我现在明白了。完成日期是日期/时间,到期日期只是日期。

以上是关于将访问 if 语句转换为优势代码的主要内容,如果未能解决你的问题,请参考以下文章

将 if 字符串语句转换为 switch 字符串语句

将三元条件运算符转换为 if 语句?

如何在JavaScript中将IF转换为SWITCH语句?

访问语句转换为 Sql

试图弄清楚如何将具有多个条件的长三元运算符转换为长if语句

访问VBA代码不将变量设置为查询值