简体   繁体   中英

How can I resolve this syntax error?

Im trying to write a query to pull customer data for an email. this is the query:

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

most syntax analysers say theres an issue on line 7 but i cant seem to see it

In is missing on line 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

Error is (there should be (in) instead of (=) and always specify a table name BEST PRACTISE (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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM