データベースからすべての実行を取得する必要がありますが、この実行にエラーがあるかどうかをマークする必要があります。
3 テーブル:
- 実行: 実行が含まれます)
- Runfiles: 実行中に処理されたファイル ID が含まれます
- メッセージ: エラー、警告などが含まれています...
このクエリをさらに最適化できますか?
SELECT TOP 1000 runid,
start,
end,
userid,
CASE
WHEN EXISTS(SELECT rf.fk_fileid
FROM runfiles rf
WHERE rf.fk_runid = r.runid
AND EXISTS(SELECT m.messageid
FROM messages m
WHERE m.fk_fileid =
rf.fk_fileid
AND m.fk_statusid = 4))
THEN 1
ELSE 0
END AS ContainsError
FROM runs r
ORDER BY start DESC
テーブル名についてコメントしないでください。この質問のために翻訳されています。
ありがとう!