SQL WHERE 子句不起作用

SQL WHERE clauses not working

我有下面的 SQL 脚本。这非常简单,不幸的是只有确定显示哪些活动的 where 子句有效。

SELECT
    a.id,
    a.leadid,
    a.campaign_name__c,
    cast(a.firstrespondeddate as date),
    b.status,
    cast(b.createddate as date),
    b.ownerid
FROM rjm_current.sf_campaignmember a 
    LEFT JOIN rjm_current.sf_lead b ON a.leadid = b.id
WHERE a.campaign_name__c LIKE '%demo%' OR a.campaign_name__c LIKE '%contact%'
    AND cast(a.firstrespondeddate as date) <> '7/14/2015'
    AND b.status = 'New' 
    AND a.contactid IS NULL
    AND a.leadid IS NOT NULL

非常感谢任何帮助。在另一个查询中,我不得不将 firstrespondeddate 转换为一个 table 中的日期并使用另一个 table 表示 firstrespondeddate <> '7/15/2015' 但它应该可以工作而不必创建一堆 tables.

OR表达式要放在括号中:

WHERE (a.campaign_name__c like '%demo%' OR a.campaign_name__c like '%contact%')
and cast(a.firstrespondeddate as date) <> '7/14/2015'
and b.status = 'New' 
and a.contactid is null
and a.leadid is not null

Operator Precedence