内部結合条件に基づいてフラグを設定しようとしています。クエリで 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);
2番目に試した:
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.
ここで何が欠けていますか?