2017-08-09 12 views
0

私はあなたにこのテーブルを表示する必要があります。SQL:日時の問題です。一週間古いイベント

Event time:    Place: Event type: 
2016-08-17 16:33:18.0  A  3 
2016-08-17 16:33:18.0  A  1 
2016-08-17 16:55:28.0  A  5 
2016-08-17 16:55:28.0  A  7 
2017-07-26 22:36:01.0  A  8 
2017-07-27 00:40:29.0  A  1 
2017-07-27 02:49:23.0  A  2 
2017-07-28 14:30:18.0  A  6 

私はイベントタイプ2の時間より最大1週間古いデータのみを選択する問合せを、書きたいですなぜなら、私の場合、そのタイプが最も重要だからです。これは可能ですか?

結果は次のようになります。

Event time:    Place: Event type: 
2017-07-26 22:36:01.0  A  8 
2017-07-27 00:40:29.0  A  1 
2017-07-27 02:49:23.0  A  2 
2017-07-28 14:30:18.0  A  6 

そして、あなたが削除されたイベント型-2日付より1週間古い日付ことがわかります。

私のようなクエリを試してみました:

 SELECT * 
     FROM events_table 
     WHERE Event_time IN (SELECT Event_time 
          FROM events_table 
          WHERE Event_type=2) 

が、それは動作しませんでした。私はその事をどのように実装するか考えていません。

+5

ここにそれらを示してください。私たちはあなたのためのコードを書いていません、あなたのゴミコードを修正するのを手伝います。 – Barmar

+1

質問を編集し、必要な結果を表示します。 –

+0

「1週間前の最大」はどういう意味ですか?あなたは1週間未満のすべての行、またはその1週間前の最も古い行を意味しますか? – Barmar

答えて

0

「イベントタイプ= 2」の行よりも「早い」ため、予想される結果で「イベントタイプ= 1」の行があるはずです。とにかく、私がコメントしたように、これはあなたが始めなければならないでしょう

SELECT * 
    FROM events_table 
    WHERE Event_time BETWEEN (SELECT Event_time 
         FROM events_table 
         WHERE Event_type=2) 
        AND DATE_ADD((SELECT Event_time 
         FROM events_table 
         WHERE Event_type=2), INTERVAL 7 DAY) 
関連する問題