0

すべてのレコードにID、タイムスタンプ、およびブール値が含まれるテーブルがあります。同じIDでブール値がtrueになってから1秒以内にブール値がfalseに変わるレコードを見つける必要があります。

私は次のステートメントに取り組んできましたが、いくつかの調査を行った後、FETCHステートメントと組み合わせたCASEの方がうまくいくと思いますが、それらを一緒に使用した良い例は見つかりませんでした。

SELECT *  
FROM Table_1  
WHERE timestamp IN(  
    SELECT DATEADD(Second, 1, timestamp)  
    from Table_1  
    where Boolean = 1)  
AND ID in (  
    SELECT ID   
    from Table_1 where Boolean = 1)  
AND Boolean = 0
4

1 に答える 1

1

どうですか:

Select Distinct
  t1.id
From
  Table_1 t1
    Inner Join
  Table_1 t2
    On
      t1.Id = t2.Id And 
      t1.Boolean = True And 
      t2.Boolean = False And
      DateDiff(Second, t1.Timestamp, t2.Timestamp) Between 0 And 1

結合句にどれだけ入れるか、where句にどれだけ入れるかは好みの問題です。

編集

  • 明確に追加
  • 日付の差に最小限界を置く
于 2012-10-26T14:20:05.927 に答える