我试图根据内部连接条件设置一个标志,我需要在查询中使用 order by 子句,因为我的条件取决于具有特定字符串的最后一条记录,但它不能是最后一个表,我试过它说它不允许,我曾经尝试过的东西似乎对我不起作用。
第一次尝试:
UPDATE TESTINSTANCE SET NETWORKOUTAGE='1'
WHERE TESTINSTANCEID IN (SELECT DISTINCT A.TESTINSTANCEID FROM AUDITLOG A
INNER JOIN TESTINSTANCE TI ON TI.TESTINSTANCEID=A.TESTINSTANCEID AND TI.TIMETAKEN IS NULL
AND TI.NETWORKOUTAGE!='1'
AND TI.ISSENTTOEDUNXT IS NULL
WHERE REPLACE(A.MESSAGE, ' ', '')=REPLACE('PING RESPONSE CAME FROM SERVER',' ','')
AND DATEDIFF (MINUTE, A.REPORTEDTIME, GETDATE())>=5 ORDER BY A.AUDITID DESC);
第二次尝试:
UPDATE TI SET NETWORKOUTAGE='1'
FROM TESTINSTANCE TI INNER JOIN (SELECT DISTINCT A.TESTINSTANCEID FROM AUDITLOG A
INNER JOIN TESTINSTANCE TI ON TI.TESTINSTANCEID=A.TESTINSTANCEID AND TI.TIMETAKEN IS NULL
AND TI.NETWORKOUTAGE!='1'
AND TI.ISSENTTOEDUNXT IS NULL
WHERE REPLACE(A.MESSAGE, ' ', '')=REPLACE('PING RESPONSE CAME FROM SERVER',' ','')
AND DATEDIFF (MINUTE, A.REPORTEDTIME, GETDATE())>=5 ORDER BY A.AUDITID DESC) RES ON RES.TESTINSTANCEID=TI.TESTINSTANCEID;
但都给了我同样的错误,
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
我在这里想念什么?