按时加入表格,如果零时间编辑时间1分钟



我有两个表。

Table 1 = My Trades
Table 2 = Market Trades

我想在交易前1分钟查询市场交易。如果表2中没有市场交易,除了我的市场外,我想回头2分钟,依此类推,直到我有一场比赛。

现在,我的查询使我相距1分钟,但我无法弄清楚如何相距2分钟,如果无效,则相距3分钟(最多30分钟)。我认为最好使用变量,但我不确定最好的方法。

Select 
 A.Ticker 
,a.date_time
,CONVERT(CHAR(16),a.date_time - '00:01',120) AS '1MINCHANGE'
,A.Price
,B.Date_time
,B.Price
FROM
Trade..MyTrade as A
LEFT JOIN Trade..Market as B 
on (a.ticker = b.ticker) 
and (CONVERT(CHAR(16),a.date_time - '00:01',120) = b.Date_time)

在mySQL中没有很好的方法。但是,由于您的代码看起来像SQL Server,我将在此处显示该解决方案,使用APPLY

select t.Ticker ,
       convert(CHAR(16), t.date_time - '00:01', 120) AS '1MINCHANGE',
       t.Price,
       m.Date_time,
       m.Price
from Trade..MyTrade as t outer apply
     (select top 1 m.*
      from Trade..Market m
      where a.ticker = b.ticker and
            convert(CHAR(16), t.date_time - '00:01', 120) >= b.Date_time)
      order by m.DateTime desc
     ) m;

最新更新