sql >> Database >  >> RDS >> Sqlserver

Geen ondersteuning voor OVER in MS SQL Server 2005?

Heb je geprobeerd een puntkomma voor je With . te zetten? uitspraak? (bijv. ;With q As )

Enkele algemene opmerkingen:

  1. U moet dit in een query uitvoeren, niet in de ontwerper. Het klinkt alsof je dat hebt opgelost.
  2. Stel de kolommen op in plaats van * . D.w.z. in het onderstaande voorbeeld vervangt u Col1, Col2 door de eigenlijke kolommen die u wilt laten voorafgaan door de tabel waar ze vandaan komen.
  3. Zet use DatabaseName bovenaan je script gevolgd door een regeleinde, gevolgd door GO , gevolgd door nog een regeleinde.
  4. Als de enige instructie voorafgaand aan de With statement is de GO tussen uw use statement en de query, dan is er geen puntkomma nodig aangezien dit het eerste statement in de batch is.

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


  1. Aan de slag met Django-kanalen

  2. Oracle:hoe krijg je een percentage van het totaal door een zoekopdracht?

  3. Onbekende kolom in 'veldlijst'-fout op MySQL Update-query

  4. Parallellisme komt naar VACUUM