0
SET @startdate = (select LOG_TIME from log.time where sender='Japan' and receiver ='USA' and code=158);

SET @enddate = (select LOG_TIME  from log.time where sender='Japan' and receiver ='USA' and code=189);

select * from log.time where  DATEDIFF(minute, @startdate, @enddate) >= 10;

ここでは、使用された選択クエリからの複数のエントリが取り込まれた 2 つの変数 (@startdate と @enddate) を使用します。

最後の行では、複数の値を持つこれら 2 つの変数を使用して、DATEDIFF 関数が 10 分以上のレコードのリストを選択クエリで返すようにします。

PS私はSquirrel SQL Client 2.3を使用しています)

問題は、変数に複数の値を使用できるかどうかわからないことです。

また、クエリが最終的に機能するように、上記の問題に対する解決策をアドバイスまたは提供してください。

4

1 に答える 1

0

このように変数を使用することはできません。

テーブル スキーマとサンプル データが表示されないことを確認するのは難しいですがJOIN、このようなクエリを使用して、必要なことを実行できるはずです。

SELECT l1.* 
  FROM log.time l1 JOIN log.time l2
    ON l1.sender = l2.sender
   AND l1.receiver = l2.receiver
   AND l1.code = 158
   AND l2.code = 189
 WHERE l1.sender = 'Japan'
   AND l1.receiver = 'USA'
   AND DATEDIFF(minute, l1.log_time, l2.log_time) >= 10

テーブル スキーマ、サンプル データ、および必要な出力を提供すると、クエリをテストすることが可能になります。

于 2013-07-01T06:42:16.097 に答える