我正在try 将自定义字段放入查询中.我的其他两个已经顺利完成,但我不能为我的生活弄清楚我错过了什么,让这一个工作.我试过几十种不同的代码排列.如果该列中有任何内容,则try 获取DateDiff("d",Date(),[REV_PRM_DT]),如果没有,则try 获取DateDiff("d",Date(),[X65-SCHATS]).需要注意的是,如果[Green_Date]中有任何内容,它应该返回"",如果[REV_PRM_DT]中的值是01/01/2055,它应该返回""(我们使用此作为填充符,以使其不显示在其他地方).

我希望我犯了个愚蠢的错误,错过了一些明显的东西

我试过的一些例子有:

距离ATS的天数:iif(([REV_PRM_dt]<>"01/01/2055")and([Green_Date]is NULL),iif(([rev_PRM_dt]is not NULL),DateDiff("d",Date(),[Rev_PRM_dt])),DateDiff("d",Date(),[X65-SCHATS])),"")

Days_to_ATS:iif(([REV_PRM_dt]<>"01/01/2055")and([Green_Date]IS NULL),iIF(([REV_PRM_dt]is not NULL),DateDiff("d",Date(),[Rev_PRM_dt])),DateDiff("d",Date(),[X65-SCHATS])),"")

Days_to_ATS:iif([Green_Date]is NULL,iif([REV_PRM_dt]="01/01/2055","",iif([REV_PRM_dt]="",DateDiff("d",Date(),[X65-SCHATS])),DateDiff("d",Date(),[Rev_PRM_dt])),"")

推荐答案

我假定这些字段是日期/时间数据类型.因为表达式应该返回数值,所以不返回"",而返回Null或0.使用#代替引号作为日期分隔符.父母的数量超过了所需.

IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null, 
   IIf(Not [REV_PRM_DT] Is Null, DateDiff("d", Date(), [REV_PRM_DT]), DateDiff("d", Date(), [X65-SCHATS])), 
   Null)

或简化

IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null, 
   DateDiff("d", Date(), IIf(Not [REV_PRM_DT] Is Null, [REV_PRM_DT], [X65-SCHATS])), 
   Null)

Is Null是SQL操作符.Nz()是函数,但可以在Access查询中调用.调用函数会降低性能,但可能不会很明显.

IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null, 
   DateDiff("d", Date(), Nz([REV_PRM_DT], [X65-SCHATS])), 
   Null)

由于运算符为AND,rev_prm_dt必须为<;>;#01/01/2005#and Green_Date必须为Null才能计算DateDiff-如果在任何一种情况下需要计算,请使用OR.也许这就是你需要的:

IIf([REV_PRM_DT] = #01/01/2055# OR Not [Green_Date] Is Null, 
   Null,
   DateDiff("d", Date(), Nz([REV_PRM_DT], [X65-SCHATS])))

Sql相关问答推荐

PostgreSQL:获取每家店铺收入最高的员工

如果开始期间不存在PostgresSql回填数据

Postgres:对包含数字的字符串列表进行排序

一个SQL查询将在需要的地方多次返回同一成员

将计算列设置为持久化的目的是什么?

具有多个条件的SQL否定

SQL按日期分组字段和如果日期匹配则求和

在Netezza SQL中将字符DataType转换为整型DataType

改进的SQL子字符串提取

如何在多列上编写具有不同条件的查询?

使用同一个表,为什么IN、NOT IN、NOT EXISTS和EXISTS有不同的输出?

如何创建snowflake表(动态查找数据类型)并从阶段加载(AWS S3)?

MySQL中的递归查询邻接表深度优先?

在 SQL Server 中合并两个 XML 列

用替代方案替换 SQL Cursor 以提高性能

如何从三个连接表中获取数据,并始终显示第一个表中的数据,以及第三个表中的空值或现有记录?

基于字符串的SQL查询

SQL Server 分区和 Run Case 语句

如何在 RavenDB Studio (RQL) 中插入更新文档

连续日期的SQL