Несколько критериев SQL-запросов - PullRequest
0 голосов
/ 05 февраля 2019

Есть ли способ применить следующие критерии в запросе Access?

Запрос объединения не обеспечивает все три критерия

LName, FName 
Where (TourID=14XXX and Status=0) AND 
      (TourID=16XXX and Status=1) AND 
      (TourID=20XXX and Status=1)

Возвращать результаты только в том случае, если все три критерия верны

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Я думаю, вы хотите агрегировать:

SELECT LName, FName 
FROM t
WHERE (TourID=14XXX and Status=0) OR 
      (TourID=16XXX and Status=1) OR 
      (TourID=20XXX and Status=1)
GROUP BY LName, FName 
HAVING COUNT(*) = 3;

COUNT(*) предполагает, что туры не дублируются в исходной таблице.

SELECT LName, FName 
FROM t
WHERE (TourID=14XXX and Status=0) OR 
      (TourID=16XXX and Status=1) OR 
      (TourID=20XXX and Status=1)
GROUP BY LName, FName 
HAVING SUM(IIF(TourID=14XXX AND Status=0, 1, 0)) > 0 AND
       SUM(IIF(TourID=16XXX and Status=1, 1, 0)) > 0 AND
       SUM(IIF(TourID=20XXX and Status=1, 1, 0)) > 0;
0 голосов
/ 05 февраля 2019

Используйте ИЛИ вместо И

select LName, FName from tablename
Where (TourID=14XXX and Status=0) OR
      (TourID=16XXX and Status=1) OR
      (TourID=20XXX and Status=1)
...