多个SQL查询条件

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

是否有采用下列标准在Access查询的方法吗?

联合查询不提供所有三个标准

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

只有返回结果,所有三个条件都为真

sql ms-access ms-access-2016
2个回答
0
投票

使用或代替AND

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

0
投票

我想你想的聚集:

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;
© www.soinside.com 2019 - 2024. All rights reserved.