とても身近に感じます...MOD関数を関数と組み合わせて使用する方法が問題だと思いますが、ROW_NUMBER()
何が間違っているのかわかりません。
ROW_NUMBER()
すべての「n番目」の行を選択する方法が必要なため、この関数を使用しています。これに関する他のページを読みました(SQLの作成に使用しました)...しかし、SQLServerからエラーが発生します。異なる証券の価格を同時にスナップショットで取得するに は、内部テーブル結合(テーブルの2つのインスタンスTick_OneMin
、H1
および)が必要です。H2
関数を使用して行をコメントアウトするとMOD
...SQLは正常に実行されます...しかし、それを挿入すると....SQLServerはエラーメッセージをスローします。
'MOD'の近くで、条件が予期されるコンテキストで指定された非ブール型の式。
これがSQLでの私の試みです-
SELECT
ROW_NUMBER() OVER (ORDER BY H1.CombDateTime ASC) AS RowID,
H1.CombDateTime,
H1.Close_PX as 'TYA_Close',
H2.Close_PX 'ESA_Close'
FROM
Tick_OneMin as H1, Tick_OneMin as H2
WHERE
H1.Ticker = 'TYA'
AND H2.Ticker = 'ESA'
AND H1.CombDateTime >= '12/28/2012 10:00 AM'
AND H1.CombDateTime <= '12/28/2012 10:30 AM'
AND H1.CombDateTime = H2.CombDateTime
AND RowID MOD 4 = 0
-- this "RowID MOD 4 = 0" is throwing an error in SQL Server
ORDER BY
H1.CombDateTime ASC
私のテーブルは次のようになります(3列の1つのテーブル)
テーブルTick_OneMin
Ticker - CombDateTime - Close_PX
------------------------------------
ES - 1/3/2012 10:00 AM - 1470
ZN - 1/3/2012 10:00 AM - 132.5
ES - 1/3/2012 10:01 AM - 1475
ZN - 1/3/2012 10:01 AM - 133
次の出力を作成したい
Date - ZN.Price - ES.Price
==== ======== ========
1/3/2012 - 132.5 - 1470
1/3/2012 - 133 - 1475
SQL SErverがエラーをスローする理由はありますか?