2017-02-22 121 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 

但:

消息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使用逗号多个领域更新用 –

+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