Sql MS Access查询,显示所有记录的条件
我正在使用MS Access 2010向导查询以筛选表。 我希望得到的结果是一个表,该表返回以下数据库: -今天是星期几 -正在处理it用户的用户:下表中的AAA、BBB、DDD 示例表如下所示: 我想要的结果是 如果今天是星期一,我需要AAA的数据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
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运算符结合使用,而不是=运算符