|
Запрос для создания ордера на бирже
|
|||
---|---|---|---|
#18+
Всем привет) Делаем биржу. Решили сделать стакан пары из 2х таблиц - OpenOrders и ClosedOrders (сюда переносятся завершенные ордера) Структура OpenOrders: [Id],[CreateDate],[IsBuy],[Price],[Amount],[Total],[CreateUserId] Ордера есть на покупку (IsBuy=0) и на продажу (IsBuy=1) Пытаемся сделать максимально эффективный запрос в процедуре, который будет закрывать, открывать и переносить ордера в зависимости от логики. На входе приходит запрос на ордер (проверку на баланс и списание делаем ранее) - цена сделки (Price) и количество (Amount) Помогите правильно написать саму процедуру, не понимаю как правильно результат выборки класть в переменную и потом с ним в процедуре работать: Делаю выборку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
потом надо проверить: 1) если выборка пустая - то создать новый ордер 2) если не пустая - то сравниваем Amount выбранного ордера с пришедшим значением: а) если Amount выбранного ордера меньше - то удалить эту запись из OpenOrders и перенести в ClosedOrders и вернуть на бекенд значение Amount б) если Amount выбранного ордера больше - то уменьшить это значение Amount на пришедшее количество, добавить в ClosedOrders пришедший ордер и вернуть на бекенд статус что пришедший ордер выполнился. Основной вопрос - как положить результат выборки select top 1 * в переменную и дальше построить условия ветвления алгоритма? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 01:15 |
|
Запрос для создания ордера на бирже
|
|||
---|---|---|---|
#18+
MathewSun Основной вопрос - как положить результат выборки select top 1 * в переменную и дальше построить условия ветвления алгоритма? выборку (несколько полей) в переменную "положить" нельзя можно каждое (нужные) поле (поля) "положить" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 06:56 |
|
Запрос для создания ордера на бирже
|
|||
---|---|---|---|
#18+
court выборку (несколько полей) в переменную "положить" нельзя Табличные переменные ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 07:47 |
|
|
start [/forum/topic.php?fid=46&fpage=15&tid=1684335]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 378ms |
0 / 0 |