Haben Sie versucht, Ihrem With ein Semikolon voranzustellen? Erklärung? (z. B. ;With q As )
Einige allgemeine Hinweise:
- Sie müssen dies in einer Abfrage ausführen, nicht im Designer. Es hört sich so an, als hätten Sie das behoben.
- Zählen Sie die Spalten auf, anstatt
*zu verwenden . Das heißt, im folgenden Beispiel ersetzen Sie Col1, Col2 durch die tatsächlichen Spalten, die Sie mit der Tabelle voranstellen möchten, aus der sie stammen. - Setzen Sie
use DatabaseNameam Anfang Ihres Skripts, gefolgt von einem Zeilenumbruch, gefolgt vonGO, gefolgt von einem weiteren Zeilenumbruch. - If die einzige Anweisung vor dem
WithAnweisung ist dasGOzwischen Ihreruse-Anweisung und der Abfrage, dann ist kein Semikolon erforderlich, da es die erste Anweisung im Stapel ist.
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