2016-11-08 130 views
0

我试图编写一个查询来为电子邮件提取客户数据。这是查询:如何解决此语法错误?

select 
opp.* 
from 
(
select 
opp.*, 
row_number() over (partition by opp.contact_email_address order by opp.status_date desc) as row_number 
from 
opportunity_data opp 
where 
opp.site = 'wesellinsurance' 
and opp.email_bounced = 'false' 
and opp.email_unsubscribed = 'false' 
and opp.first_mkt_medium not in ('partner', 'inbound_outbound') 
and opp.latest_mkt_medium not in ('partner','inbound_outbound') 
and opp.on_cover = 'false' 
and opp.primary_group in ('market_trader', 'food_stand', 'mobile_food_van', 'caterer') 
and opp.opportunity_status = ('quote_recieved','rfq_submitted', 'policy_expired_not_renewed') 
and datediff(day, cast(latest_rfq_submitted_date as date),cast(getdate() as date)) > 30 
and opp.lifecycle = 'new_business' 
) opp 
where row_number = 1 

大多数语法分析器说那里有第7行的问题,但我不能似乎看到它

+1

您正在使用SQL Server语法一个MySQL标签。可能会建议切换数据库。 –

+0

错误信息是什么? – Viki888

+0

可以请您提一下哪种类型的错误是 – mansi

回答

1

在缺少在线18

select 
     opp.* 
    from 
     (
     select 
     opp.*, 
     row_number() over (partition by opp.contact_email_address order by opp.status_date desc) as row_number 
    from 
     opportunity_data opp 
    where 
     opp.site = 'wesellinsurance' 
     and opp.email_bounced = 'false' 
     and opp.email_unsubscribed = 'false' 
     and opp.first_mkt_medium not in ('partner', 'inbound_outbound') 
     and opp.latest_mkt_medium not in ('partner','inbound_outbound') 
     and opp.on_cover = 'false' 
     and opp.primary_group in ('market_trader', 'food_stand', 'mobile_food_van', 'caterer') 
     and opp.opportunity_status in ('quote_recieved','rfq_submitted', 'policy_expired_not_renewed') 
        --------------^ 
     and datediff(day, cast(latest_rfq_submitted_date as date),cast(getdate() as date)) > 30 
     and opp.lifecycle = 'new_business' 
    ) opp 
    where row_number = 1 
+0

优胜者优胜者鸡晚餐 – TastyBurgers

0

错误的是(有应该是(in)而不是(=)并且始终指定一个表名称BEST PRACTICE(opp1.row_number))

select 
     opp1.* 
     from 
     (
     select 
     opp.*, 
     row_number() over (partition by opp.contact_email_address order by opp.status_date desc) as row_number 
     from 
     opportunity_data opp 
     where 
     opp.site = 'wesellinsurance' 
     and opp.email_bounced = 'false' 
     and opp.email_unsubscribed = 'false' 
     and opp.first_mkt_medium not in ('partner', 'inbound_outbound') 
     and opp.latest_mkt_medium not in ('partner','inbound_outbound') 
     and opp.on_cover = 'false' 
     and opp.primary_group in ('market_trader', 'food_stand', 'mobile_food_van', 'caterer') 
     and opp.opportunity_status in ('quote_recieved','rfq_submitted', 'policy_expired_not_renewed') 
     and datediff(day, cast(latest_rfq_submitted_date as date),cast(getdate() as date)) > 30 
     and opp.lifecycle = 'new_business' 
     ) opp1 
     where opp1.row_number = 1 
+0

请不要只做代码转储。 – Drew