SQL SERVER для сопоставления ордеров на фондовом рынке - PullRequest
0 голосов
/ 08 января 2020

У меня есть три таблицы приложений на фондовом рынке: BIDS, ASKS и TRADES

Новый ордер Ask вставляется в таблицу ASKS. Затем, если NewASK.Price равен <= BIDS.Price, необходимо вставить новые строки в таблицу TRADES. </p>

Чтобы избежать курсора, который я создал, #temptable заполняем его всеми ставками, где BIDS.Price <= NewASK .Цена и затем INSERT INTO Trades SELECT FROM #temptable WHERE CumulativeNumberOfContracts < NewASK.NumberOfContracts.

В настоящее время я делаю еще один INSERT INTO Trades SELECT TOP 1 FROM #temptable WHERE CumulativeNumberOfContracts > NewAsk.NumberOfContracts (т. Е. NewAsk.NumberOfContracts = 25 и #temptable содержит 3 предложения по 10 контрактам, первые два из которых заполнены 100 % и третье только 50%).

Однако я сталкиваюсь с трудностями, когда NewAsk.NumberContracts <= CumulativeNumberOfContracts, и думаю, что единственный способ обработки - через <code>IF . . . THEN блоки.

ВОПРОС : Я не усложняюсь, чем просто с помощью курсора (или блока WHILE)?

...