2017-02-24 41 views
0

我有兩個表格。按時間連接表,IF NULL編輯時間縮短1分鐘

Table 1 = My Trades 
Table 2 = Market Trades 

我想在交易前1分鐘查詢市場交易。如果表2中沒有與我的距離爲1分鐘的市場交易,那麼我想回顧2分鐘,直到我有一場比賽。

現在我的查詢讓我分開1分鐘,但我無法弄清楚如果NULL或相隔3分鐘,如果NULL(最多30分鐘)如何分開2分鐘。我認爲最好使用一個變量,但我不知道最好的方法來解決這個問題。

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) 
+0

很抱歉,謝謝 –

回答

1

在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; 
+0

它的工作謝謝!市場是一個大桌子,所以花了一些時間,但它的工作。 –