如何在WHERE子句中使用MS Access SQL子查询来替换长OR表达式

问题描述 投票:0回答:1

我正在尝试为有趣的项目提取时间日志记录,如下所示:

SELECT project, hours, date
FROM timelog
WHERE (project="one" or project="two" ... 20 more OR clauses)

但是,由于我有一个包含有趣项目的表格,我想说

SELECT project, hours, date
FROM timelog
WHERE project in (select project from InterestingProjects)

对我来说不幸的是,在MS Access上尝试这样做时,我一无所获。子查询似乎只返回一些有趣的项目,几乎只有第一个以c开头,第一个以s开头,等等。

我想做不可能的事吗? (然后我想通过有趣的项目对行进行分组和总结,但我认为这是第二步。)谢谢。

sql ms-access subquery
1个回答
0
投票

我不确定我的查询有什么问题,但鉴于你的最后评论,我认为使用join会更有意义:

select t.project, t.hours, t.date, count(ip.*) projectcount
from timelog t
   join interestingprojects ip on t.project = ip.project
group by t.project, t.hours, t.date

如果您的查询未返回预期结果,您是否可以验证project中的interestingprojectsproject中的timelog相同。也许检查空格。

© www.soinside.com 2019 - 2024. All rights reserved.