2. если знакомы с SQL то с помощью Linq можно писать выражения очень похожие, используя select и where.
3. Ну вот функция, что я вам дал и выдает значение в лотах. Кроме того нужно активные заявки учесть, которые уже стоят.

Да, тестировать такой скрипт нельзя.