访问查询条件返回周末范围,如果星期一,否则返回昨天
Posted
技术标签:
【中文标题】访问查询条件返回周末范围,如果星期一,否则返回昨天【英文标题】:Access Query Criteria return weekend range if monday, else return yesterday 【发布时间】:2015-08-27 07:58:07 【问题描述】:使用 Access 2007
这是我的第一个问题,如果有人问“错误的方式”,我提前道歉。
我有一个关于工作发票的庞大数据库。 我们希望有一个计数器显示“我们昨天收到了多少张发票,如果是周一,我们在周五、周六和周日收到了多少?”
计数器本身没有问题,但是让它得到多天的查询条件真的很烦我(缺乏知识)
不管是哪一天,它似乎都在减去 3 天。
为什么以下在查询条件中不起作用? (如果不是周一,周一和昨天的结果不返回周五、周六和周日的值?)
IIf(Weekday(Date()=2);<=Date()-3;Date()-1)
编辑:我使用的是丹麦版本的 Access 2007,这就是为什么会有 ;而不是,
【问题讨论】:
【参考方案1】:您不能将IIf()
的结果用作完整的条件表达式,但可以将其用作条件参数。使用这样的 WHERE 子句:
WHERE (DateDiff("d",[InvoiceDate],Date()) <= IIf(Weekday(Date())=2,3,1))
AND (DateDiff("d",[InvoiceDate],Date()) >= 1)
在查询设计编辑器中,两个条件将合并为一列(此处为德语访问)。
如果您想包含今天的发票,请省略 AND (DateDiff("d",[InvoiceDate],Date()) >= 1
。
【讨论】:
感谢您的回复和编辑,安德烈!我想我没有关注这里的某个地方。我的访问搞砸了,要我编辑,到;与“2,3,1”相同。还将 [InvoiceDate] 更改为 [ModtagelsesDato],因为这是 RecievedDate 的字段名称 :) 当我尝试运行它时,返回的是“表达式中有一个未定义的函数“WHERE””。你现在一定是在捂脸,但是我在哪里输入“WHERE ..........”才能工作。对不起,我的经验不足,感谢您的耐心等待 工作就像一个魅力!感谢您的耐心等待!以上是关于访问查询条件返回周末范围,如果星期一,否则返回昨天的主要内容,如果未能解决你的问题,请参考以下文章
SQL 查询:如果满足搜索条件,则应返回单条记录,否则返回多条记录