Sql MS Access查询,显示所有记录的条件

Sql MS Access查询,显示所有记录的条件,sql,ms-access-2010,Sql,Ms Access 2010,我正在使用MS Access 2010向导查询以筛选表。 我希望得到的结果是一个表,该表返回以下数据库: -今天是星期几 -正在处理it用户的用户:下表中的AAA、BBB、DDD 示例表如下所示: 我想要的结果是 如果今天是星期一,我需要AAA的数据 Monday | Tuesday AAA | BBB AAA | BBB Monday | Tuesday DDD | AAA DDD | AAA 如果今天是星期二,我需要AAA的数据 Monday | Tuesda

我正在使用MS Access 2010向导查询以筛选表。 我希望得到的结果是一个表,该表返回以下数据库: -今天是星期几 -正在处理it用户的用户:下表中的AAA、BBB、DDD

示例表如下所示:

我想要的结果是 如果今天是星期一,我需要AAA的数据

Monday | Tuesday
AAA    | BBB 
AAA    | BBB 
Monday | Tuesday
DDD    | AAA
DDD    | AAA
如果今天是星期二,我需要AAA的数据

Monday | Tuesday
AAA    | BBB 
AAA    | BBB 
Monday | Tuesday
DDD    | AAA
DDD    | AAA
到目前为止,我的想法是: 在条件字段中,我设置了一个条件:

IIf([TempVars]![WorkingDay]=2,[TempVars]![WorkingUser],*)
我的理解是: ->如果今天是第二天星期二,则显示AAA的数据,否则不是星期二全部显示

我检查了access base打开时计算的TempVars,它们正确且相等: [临时工]![工作日]=2 [临时工]![工作语言]=AAA

这实际上是有效的->我看到AAA的记录,但如果今天不是星期二,TempVar=1,我希望所有记录编译器都会进入错误语句,即*,但我实际上没有看到任何记录。。。编译器进入错误语句,若我手动插入BBB,我将得到BBB,但我不知道应该输入什么,所以我得到所有数据

我不确定这句话有什么不对,我试着代替*,把: -像* -像* -不为null或为null 在Access中,它显示如下: SQL代码,由Access生成:


谢谢你的帮助,谢谢。

< P>你应该考虑规范你的数据,这样工作日就用一个工作日来表示,而不是一周中的每一天都有一个单独的字段。 但是,以下查询使用Choose函数来获得所需的结果:

select
    t001.Monday, t001.Tuesday
from
    tbl_001_wholebase t001
where
    choose
    (
        [tempvars]![WorkingDay],
        t001.Monday  = [tempvars]![WorkingUser],
        t001.Tuesday = [tempvars]![WorkingUser]
    )
或者,使用逻辑运算符:

select
    t001.Monday, t001.Tuesday
from
    tbl_001_wholebase t001
where
    ([tempvars]![WorkingDay] = 1 and t001.Monday  = [tempvars]![WorkingUser]) or
    ([tempvars]![WorkingDay] = 2 and t001.Tuesday = [tempvars]![WorkingUser])
查询无法返回所需结果的原因是*通配符应与like运算符结合使用,而不是=运算符