У меня есть три таблицы приложений на фондовом рынке: 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)?