【问题标题】:Convert access if statement to advantage code将访问 if 语句转换为优势代码
【发布时间】: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"

【问题讨论】:

    标签: sql advantage-database-server


    【解决方案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。 . .第二个查询似乎是您想要的。
    • 仍然得到一个无效的运算符操作数 >
    • 想我现在明白了。完成日期是日期/时间,到期日期只是日期。
    猜你喜欢
    • 2014-05-28
    • 2010-09-11
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多