Синтаксис SQL Server для обновления через подзапрос - PullRequest
0 голосов
/ 09 июля 2009

Как мне сформулировать этот запрос

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

чтобы избежать этой ошибки

Line 6: Incorrect syntax near ')'.

Аналогично [ Синтаксис подзапроса SQL Server но я не могу заставить трюк с псевдонимами работать.

Я нахожусь на SQL Server 2000

Ответы [ 3 ]

3 голосов
/ 09 июля 2009

Вам не хватает скобки?

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

Тогда решение с псевдонимом должно работать.

0 голосов
/ 10 июля 2009

Вам нужно назвать производную таблицу.

обновление кузницы..dimInteg2 установить дубликаты = (выберите количество (dimCover.idCover) из (выберите idCover от x90..dimCover группа по idCover имеющий количество (*)> 1) dimCover) где dimTable = 'dimCover'

0 голосов
/ 09 июля 2009

Попробуйте добавить поле dimTable ко второму оператору выбора:

update forge..dimInteg2
   set duplicates = 
      (select count(*) from (select idCover --, dimTable HERE
                                 from x90..dimCover
                                 group by idCover
                                 having count(*) > 1) 
where dimTable = 'dimCover'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...