過去 1 時間にクライアントがサーバーと通信していないことを知らせるクエリがあります。そうなったら、メールを送らないといけません。
これは、時間内に通信していないすべてのクライアントを取得するクエリです。
SELECT * FROM Client
WHERE DATEADD(HOUR, 1, LastCommunication) < GetDate()
ただし、クライアントから何日も連絡がない場合は、メールを 1 通だけ送信したいと考えています。また、以前に壊れていたクライアントがオンラインに戻ったときにメールを送信したいと考えています。この目的のために、「IsErrorNotified」という名前のテーブルにビット列を追加しました。
エラー状態が変化したクライアントのみを取得したい。通常、私はこれを行います:
SELECT * FROM Client
WHERE DATEADD(HOUR, 1, LastCommunication) < GetDate() = IsErrorNotified
ただし、これは機能しません。どうすればいいですか?