我正在运行以下SQL脚本来创建一个表,其中包含有关哪些营销活动正在驱使人们到我的站点进行表单填写的信息。
市场营销源戳记的case语句不起作用。我的搜索结果仍然具有搜索品牌的值-无论对于marketing_source列是什么,这些值现在应该只是"google-adwords“。
我也得到了创建日期为9/15/2015以及之后的结果,当我的过滤器清楚地显示createddate >= '1/1/2016‘之后。
有什么想法吗?
create table temp.roi_inqs as (
Select
a.ID,
cast(a.createddate as date) as date,
CASE
WHEN a.marketing_source_stamp__c = 'search%' then 'google-adwords'
ELSE a.marketing_source_stamp__c
END AS marketing_source,
CASE
when a.contactid is null then b.email
when a.contactid is not null then c.email
end as prospect_email
from rjm_current.sf_campaignmember a
left join rjm_current.sf_lead b on b.id = a.leadid
left join rjm_current.sf_contact c on c.id = a.contactid
where cast(a.createddate as date) >= '1/1/2016'
AND (
campaign_marketing_type__c in ('A','C'))
OR
(campaign_marketing_type__c = 'B'
AND a.status in ('Registered','Attended','No Show')));

发布于 2016-03-11 07:01:57
您的整个谓词的形式为
A AND B OR C如果您没有放入任何括号,这意味着您是在查询
(A AND B) OR C当你真的想写的时候
A AND (B OR C)作为一般规则:如果您混合使用AND和OR,请始终使用圆括号
发布于 2016-03-11 07:14:35
@Lukas Eder回答了我关于日期问题的问题。
对于case语句,我必须将marketing_source_stamp__c = 'search%‘更改为marketing_source_stamp__c,就像'search%’一样,这个问题就解决了。
CASE
WHEN a.marketing_source_stamp__c LIKE 'search%' then 'google-adwords'
ELSE a.marketing_source_stamp__c
END AS marketing_source,https://stackoverflow.com/questions/35928855
复制相似问题