我想問一下如何輸出一列與tickerID
。複雜查詢的輸出列
截至目前我有以下:
select distinct
mtime,
avg(lastBid) Bid ,
avg(lastAsk) Ask
from
(Select
a.mtime, a.IntradayTime, f.lastBid, f.lastAsk
from
(select
cte.*,
(select top 1 datetime
from IntradayHistory_1min.dbo.IntradayDataHistory' + @product + '_1min' + '
where datetime <= cte.mtime
and TickerID = ' + cast(@ticker as nvarchar(24)) + '
order by datetime desc) as IntradayTime
from
cte) a
left join
Intradayhistory_1min.dbo.IntradayDataHistory'+ @product + '_1min' + ' f on f.datetime = a.IntradayTime and f.tickerid = ' + cast(@ticker as nvarchar(24)) + ') b
group by
mtime
order by
mtime
option (maxrecursion 0)
的dbo.IntradayDataHistory_Rebar_1min
的屏幕截圖(在這種情況下:鋼筋是@product):
更新了澄清:輸出看起來像這樣,
我曾嘗試以下過,沒有工作:
select distinct mtime,
(ticker) tickerid
avg(lastBid) Bid ,
avg(lastAsk) Ask
from (Select a.mtime, a.IntradayTime, f.tickerid, f.lastBid, f.lastAsk
from (select cte.*, (select top 1 datetime from IntradayHistory_1min.dbo.IntradayDataHistory' + @product + '_1min' + '
where datetime <= cte.mtime and TickerID = ' + cast(@ticker as nvarchar(24)) + ' order by datetime desc) as IntradayTime from cte) a
left join Intradayhistory_1min.dbo.IntradayDataHistory'+ @product + '_1min' + ' f
on f.datetime = a.IntradayTime and f.tickerid = ' + cast(@ticker as nvarchar(24)) + ') b
group by mtime order by mtime option (maxrecursion 0)
的錯誤,我得到:
列「b.tickerid」無效在選擇列表中,因爲它是不包含在聚合函數或GROUP BY子句中。
正是你的意思是什麼'輸出一列'? –
不清楚你想要做什麼 - 但是我們可以看到,在邏輯上,'tickerid'也必須是'@ RBticker1'變量中包含的任何內容,最簡單的方法可能是選擇該變量。 –
如果您將'tickerid'添加到GROUP BY子句中? 'group by mtime,tickerid order by ...' –