2009-07-09 9 views
0

Wie formuliere ich diese AbfrageSQL Server Syntax für die Aktualisierung über eine Unterabfrage

update forge..dimInteg2 
    set duplicates = 
     (select count(*) from (select idCover 
           from x90..dimCover 
           group by idCover 
           having count(*) > 1)) 
where dimTable = 'dimCover' 

diesen Fehler

Line 6: Incorrect syntax near ')'. 

Ähnlich [SQL Server subquery syntax zu vermeiden, aber ich kann nicht die Alias ​​scheinen, Trick zur Arbeit.

Ich bin auf SQL Server 2000

+1

Können Sie bitte verschiedene Betreffzeilen verwenden? Eine Betreffzeile ist nicht dazu gedacht, Ihre Frage einfach zu kategorisieren, sie soll eine kurze Charakterisierung davon sein. Zum Beispiel, "SQL Server UPDATE: Wie Alias ​​zu verwenden" –

Antwort

3

Vermissen Sie eine Klammer?

update forge..dimInteg2 
set duplicates = 
    (select count(*) from (select idCover 
          from x90..dimCover 
          group by idCover 
          having count(*) > 1)) --HERE 
where dimTable = 'dimCover' 

Dann sollte die Alias-Lösung funktionieren.

update forge..dimInteg2 
    set duplicates = 
     (select count(*) from (select idCover --, dimTable HERE 
           from x90..dimCover 
           group by idCover 
           having count(*) > 1) 
where dimTable = 'dimCover' 
+0

Woops - das war ein Tippfehler, legte ich die Klammer und bekam einen etwas anderen Fehler, ich habe die Frage über – cindi

+0

ändern, aber wenn ich die Klammer, den Alias ​​hinzugefügt Lösung hat funktioniert. – cindi

0

Try Feld dimTable zu zweiten Select-Anweisung hinzuzufügen.

Update forge..dimInteg2 set Duplikaten = (SELECT COUNT (dimCover.idCover) aus (auswählen idCover aus x90..dimCover Gruppe von idCover mit COUNT (*)> 1) dimCover) wo dimTable = 'dimCover'

0

Sie müssen die abgeleitete Tabelle nennen:

Verwandte Themen