2016-11-07 6 views
-1

このシナリオでは、トランザクションの詳細テーブルで異なる金額で15分以内に発生した取引を調べる必要があります。 たとえば、トランザクションT1(最初のレコード)が6.50で発生し、T2が6.55で発生した場合、金額が異なるため、両方とも来るはずです。15分で異なる金額で行われた取引を検索する

トランザクションが15分以内に発生しなかった場合、または15分以内に発生した場合でもその金額が同じ場合は、そのレコードを除外します。 (異なる量でも15分以内の記録と)

transid   transdate    TransAmount 
T1    11/7/2016 6:50   400 
T2    11/7/2016 6:55   450 
T5    11/7/2016 7:50   500 
T6    11/7/2016 7:55   600 

ヘルプが理解されるであろう。

transid   transdate    TransAmount 
T1    11/7/2016 6:50   400 
T2    11/7/2016 6:55   450 
T3    11/7/2016 7:15   300 
T4    11/7/2016 7:31   300 
T5    11/7/2016 7:50   500 
T6    11/7/2016 7:55   600 

期待される結果:

以下は、レコードのサンプルと期待される結果です。

+1

DBMSはあなたが使用している場合である見つけるために存在します。 mysql <> SQLサーバ。 –

+1

また、plsはあなたの投稿だけであなたの要件を説明しているので、質問もしますが、1つの質問をすることはできません。あなた自身の努力のいくつかのデモンストレーションも役立ちます – Shadow

答えて

0

これはMS SQL SERVERのため、時間差を秒単位で計算しました。たとえば15 * 60秒= 60分です。各レコードの

、使用することは、あなたの条件に一致するレコードが存在か

SELECT T1.* FROM transactions T1 WHERE 
     EXISTS (
       SELECT 0 FROM transactions T2 
         WHERE 
          ABS(DATEDIFF(second, T1.Transdate,T2.Transdate)) <= 15 *60 
          AND 
          T1.transAmount <> T2.Transamount 
       ) 
関連する問題