+-
在where子句中需要有关多个条件的帮助

我有一个简单的查询我的数据集:

SELECT * FROM efleet_copy
WHERE EXTRACT(MONTH from service_date) = 02
AND status = 'Approved' AND mta_id NOT LIKE '_________'
ORDER BY mta_id;

我需要的是排除满足这些条件的交易:

provider = MTA CURB APP which is mta_id = 1
provider = MTA CURB APP Streethail which is mta_id = 1
provider = MTA CONCIERGE which is mta_id = 2

这是样本数据:

enter image description here

我已经在我的where子句中尝试过这些查询,但它不起作用:

AND provider IN ('MTA CURB APP', 'MTA CURB APP Streethail') AND mta_id <> '1'
AND provider IN ('MTA CONCIERGE') AND mta_id <> '2'

AND (provider = 'MTA CURB APP' AND mta_id <> '1') OR (provider = 'MTA CURB APP Streethail' AND mta_id <> '1') OR (provider = 'MTA CONCIERGE' AND mta_id <> '2')
1
投票

这是你想要的吗?

WHERE EXTRACT(MONTH from service_date) = 2 AND
      status = 'Approved' AND
      mta_id NOT LIKE '_________' AND
      (provider, mta_id) NOT IN ( ('MTA CURB APP', 1),
                                  ('MTA CURB APP Streethail', 1)
                                  ('MTA CONCIERGE', 2)
                                );
ORDER BY mta_id;