Как использовать подзапрос MS Access SQL в предложении WHERE для замены длинных выражений OR - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь извлечь записи журнала времени для интересных проектов, например:

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 и т. Д.

Пытаюсь ли я сделать невозможное?(Затем я хочу сгруппировать и суммировать строки по интересному проекту, но я думаю, это второй шаг.) Спасибо.

1 Ответ

0 голосов
/ 13 июня 2018

Я не уверен, что вижу что-то не так с вашим запросом, но, учитывая ваш последний комментарий, я думаю, что использование 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 в interestingprojects совпадает с project в timelog.Возможно, проверьте пробелы.

...