¿Ha intentado anteponer un punto y coma delante de su With? ¿declaración? (por ejemplo, ;With q As )
Algunas notas generales:
- Debe ejecutar esto en una consulta, no en el diseñador. Parece que lo has solucionado.
- Enumerar las columnas en lugar de usar
*. Es decir, en el siguiente ejemplo, reemplace Col1, Col2 con las columnas reales que desea que tengan el prefijo de la tabla de donde provienen. - Poner
use DatabaseNameen la parte superior de su script seguido de un salto de línea, seguido deGO, seguido de otro salto de línea. - Si la única afirmación anterior a
Withdeclaración es elGOentre suusedeclaración y la consulta, entonces no es necesario punto y coma ya que es la primera declaración en el lote.
use DatabaseName
GO
WITH q AS
(
SELECT TableName.Col1, TableName.Col2,...
, ROW_NUMBER() OVER (PARTITION BY dbo.[1_MAIN - Contacts].Contact_ID
ORDER BY dbo.[1_MAIN - Contacts].Contact_ID ) AS rn
FROM dbo.[1_MAIN - Contacts]
INNER JOIN dbo.Referral
ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Referral.Referral_ID
INNER JOIN dbo.prov_training_records
ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.prov_training_records.Contact_ID
LEFT OUTER JOIN dbo.Resource_Center
ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Resource_Center.Contact_ID
FULL OUTER JOIN dbo.Providers
ON dbo.[1_MAIN - Contacts].Contact_ID = dbo.Providers.Contact_ID
)
SELECT *
FROM q