Здравствуйте! Необходимо с помощью ESQ (не Select !) реализовать такой запрос
select Number from Document order by CreatedOn desc
Столкнулся с проблемой: чтоб задать сортировку по колонке, ее необходимо добавить в запрос, то есть по факту получиться такой запрос
select Number, CreatedOn from Document order by CreatedOn desc
В моем случае включить в выборку нужно именно одну колонку.Подскажите, как задать сортировку без добавления колонки?
Нравится
Как вариант думаю можно попробовать создать представление (view) которое отсортирует как вам нужно и вернет нужное вам количество колонок
Максим а в чем разница сколько колонок в запросе? 2 или 1. Вы же не делаете группировку и при этом сортировку. Суть своей задачи более подробно поясните.
Суть в том, что это будет подзапрос в другом запросе и мне нужно возвращать именно одну колонку из подзапроса. Например
select p.Number as Number, ( select top 1 d.Number from Document d where d.ProjectId = p.Id and d.TypeId = 'DC2768E3-8767-4E59-AD83-2DC7C3B40DAA' order by d.CreatedOn desc ) as LastDocument from Project p
И таких подзапросов больше одного, поэтому обычный join не подходит
Тогда вам Максим нужно использовать не ESQ а Select конструкцию и тогда все у вас взлетит. Так как ESQ в конце Генерирует результирующий запрос, а SELECT вы сами описываете весь свой запрос. Я бы пошел по пути SELECT.
Власов Михаил Викторович,
спасибо за ответ. Насчет класса Select я знаю. Но вот выборка реализована уже с помощью Esq, и просто необходимо в запрос добавить несколько колонок в виде подзапросов. Не хочеться переписывать работающий код.
В таком случае можно построить одну большую View с колонкой-подзапросом, зарегистрировать как схему и работать в ESQ с ней.