2016-11-10 1 views
0

En écrivant une requête pour une campagne et chaque fois que j'essaie de l'exécuter, j'obtiens une erreur en disant que la syntaxe n'est pas correcte.Comment résoudre une "syntaxe incorrecte proche de", ""?

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.email_bounced = 'false' 
     and opp.email_unsubscribe = 'false' 
     and opp.first_mkt_medium not in ('partner', 'inbound_outbound') 
     and opp.latest_mkt_medium not in ('partner', 'inbound_outbound') 
     and datediff (day, cast(latest_rfq_submitted_date as date), cast(getdate() as date)) > 30 
     and opp.on_cover = 'no' 
     and opp.primary_group in ('Market_trader', 'Food_stand', 'Mobile_food_van', 'Caterer') 
     and opp.site = 'simplybusiness' 
     and opp.opportunity_status = ('quote_recieved', 'rfq_submitted', 'policy_expired_not_renewed') 
) opp 
where row_number = 1 
+0

Retirez un code, une nouvelle tentative, enlever un peu plus de code, une nouvelle tentative etc. – jarlh

+0

S'il vous plaît ajouter le message d'erreur complet. –

+0

Bienvenue dans Stack Overflow! Pour aider les gens à répondre à votre question, vous devrez être plus précis sur l'erreur. S'il vous plaît [modifier] votre message pour intégrer les erreurs exactes que vous obtenez de la compilation de votre [mcve] (de préférence en utilisant copier + coller pour éviter les erreurs de transcription). –

Répondre

1

Vérifiez avec ceci:

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.email_bounced = 'false' 
     and opp.email_unsubscribe = 'false' 
     and opp.first_mkt_medium not in ('partner', 'inbound_outbound') 
     and opp.latest_mkt_medium not in ('partner', 'inbound_outbound') 
     and datediff (day, cast(latest_rfq_submitted_date as date), cast(getdate() as date)) > 30 
     and opp.on_cover = 'no' 
     and opp.primary_group in ('Market_trader', 'Food_stand', 'Mobile_food_van', 'Caterer') 
     and opp.site = 'simplybusiness' 
     and opp.opportunity_status in ('quote_recieved', 'rfq_submitted', 'policy_expired_not_renewed') 
) opp 
where row_number = 1 
+0

nous avons un winrar – TastyBurgers

1

L'erreur apparaît à cause de votre dernière ligne where. Vous ne pouvez pas l'utiliser comme ça. Je pense que vous vouliez utiliser in au lieu de =:

AND opp.opportunity_status IN ('quote_recieved', 'rfq_submitted', 'policy_expired_not_renewed')