2017-02-22 16 views
0

Я начинающий SQL обучаемость и пытается сделать обновление заявление, как перед тем, какОбновление в SQL с использованием подзапроса

UPDATE STG 
SET STG.COL1 = SUB.COL1 
SET STG.COL2 = SUB.COL2 
FROM TABLE AS STG 
INNER JOIN (SELECT ID, MIN([DATE]) AS COL1, MAX([DATE]) AS COL2 
      FROM TABLE 
      GROUP BY ID) AS SUB ON STG.ID = SUB.ID 

, но я получаю эти ошибки:

Msg 170, Уровень 15, состояние 1, строка 4
Строка 4: неправильный синтаксис около '.'.

Msg 156, Level 15, State 1, Line 10
Неверный синтаксис рядом с ключевым словом 'AS'.

Я использую

Microsoft SQL Server 2000 - 8.00.2066 (Intel X86) 
May 11 2012 18:41:14 
Copyright (c) 1988-2003 Microsoft Corporation 
Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) 
+0

SET STG.COL1 = SUB.COL1, STG.COL2 = SUB.COL2 использовать запятую для многократного поля Updation –

+0

Когда у вас есть ошибка, и вы задаете вопрос об этой ошибке, вы должны включить эту ошибку. Используйте ссылку редактирования на свой вопрос, чтобы включить эту деталь, не включайте ее в качестве комментария. Также прочитайте [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). – Igor

+1

Синтаксис 'UPDATE' зависит от базы данных; тег с той базой данных, которую вы используете. Кроме того, «но получение ошибки» не является информативным; укажите фактическое сообщение об ошибке. –

ответ

1

Попробуйте

UPDATE STG 
    SET STG.COL1 = SUB.COL1,STG.COL2 = SUB.COL2 
    FROM TABLE STG 
    INNER JOIN (SELECT ID 
    ,MIN([DATE]) AS COL1 
    ,MAX([DATE]) AS COL2 
    FROM TABLE 
    GROUP BY ID 
    ) As SUB 
    ON STG.ID = SUB.ID