2015-05-11 1 views
0

Как преобразовать следующий SQL в ServiceStack.OrmLite Sql Server формате?Преобразование SQL в ServiceStack.ORMLite Sql Server

/* Total Receipts */ 
select convert(date, t.TransactionDate) [Date], tm.TeamId,a.AccountNumber, count(distinct(t.RequisitionNumber)) Total 
from task.tblTransactions t 
inner join task.tblRequisitions r on r.RequisitionNumber = t.RequisitionNumber 
inner join task.tblAccounts a on a.AccountNumber = r.AccountNumber 
inner join Team tm on tm.DivisionId = a.DivisionId 
where t.TransactionTypeNumber = 201 and a.IsActive = 1 
and t.TransactionDate between @fromDate and @toDate 
group by convert(date, t.TransactionDate), tm.TeamName, a.AccountName 
order by 1,2 desc 

Мой класс Результат:

public class KpiTotal : IKpiTotal 
{ 
    public DateTime Date { get; set; } 

    public int TeamId { get; set; } 
    public Team Team { get; set; } 

    public int AccountId { get; set; } 
    public Account Account { get; set; } 

    public double Total { get; set; } 
} 

ответ

1

Для пользовательских SQL, как это, вы будете использовать OrmLite в пользовательских SQL API, с чем-то вроде:

var results = db.Select<Poco>(@"select convert(date, t.TransactionDate) [Date], 
    tm.TeamName, a.AccountName, count(distinct(t.RequisitionNumber)) Total 
    from task.tblTransactions t 
    inner join task.tblRequisitions r on r.RequisitionNumber = t.RequisitionNumber 
    inner join task.tblAccounts a on a.AccountNumber = r.AccountNumber 
    inner join Team tm on tm.DivisionId = a.DivisionId 
    where t.TransactionTypeNumber = 201 and a.IsActive = 1 
    and t.TransactionDate between @fromDate and @toDate 
    group by convert(date, t.TransactionDate), tm.TeamName, a.AccountName 
    order by 1,2 desc", new { fromDate = fromDate, toDate = toDate }); 

Где fromDate и toDate это ваш параметризованные переменные и Poco - это настраиваемый тип с полями, которые соответствуют возвращенному набору результатов.

+0

Прохладный, В этом случае, как я могу загрузить ссылки? Я добавил свой класс результатов @mythz –

+1

@RogerOliveira. Вы не сможете использовать пользовательский SQL, но, возможно, сможете использовать новый метод расширения Merge (https://github.com/ServiceStack/ServiceStack.OrmLite#merge-disconnected -poco-result-sets), чтобы объединить отсоединенные POCO вместе на основе их ссылочных определений. – mythz

+0

Расширение слияния прекрасно работало! @mythz –

 Смежные вопросы

  • Нет связанных вопросов^_^