0
在linq查询中选择case语句。datediff with case statement in select query linq
这里是SQL查询:
select case when DATEDIFF(day,convert(varchar,Min([Order].CreatedOnUtc),101),convert(varchar,Max([Order].CreatedOnUtc),101)) = 0 then
Sum([Order].OrderSubtotal)
else
case when (DATEDIFF(day,convert(varchar,Min([Order].CreatedOnUtc),101),convert(varchar,Max([Order].CreatedOnUtc),101))/30) = 0 then Sum([Order].OrderSubtotal) else
Sum([Order].OrderSubtotal)/
(DATEDIFF(day,convert(varchar,Min([Order].CreatedOnUtc),101),convert(varchar,Max([Order].CreatedOnUtc),101))/30)
end
end as 'Account Value' from [order] where And Account.ID = @Act_ID
在这里,我想代码:
var query = _orderRepository.Table;
query = query.Where(o => o.AccountId == accountId);
在查询我收到我的价值。
查询语句后应该怎么写? 如何使用linq编写case语句?
我希望下面的链接将有所帮助。 [linq-case-statement-stackoverflow](http://stackoverflow.com/questions/936028/linq-case-statement)[选择案例在LINQ - Stackoverflow](http://stackoverflow.com/questions/ 4244023/select-case-in-linq) – Venu
我已经看到这个声明在stackoverflow ..但在我的情况下DATEDIFF与两个case语句..所以你可以指导我?? – Manoj
var query = _orderRepository.Table; query = query.Where(o => o.AccountId == accountId); var MinDate =(从查询中选择d.CreatedOnUtc).Min(); var MaxDate =(从查询中的d选择d.CreatedOnUtc).Max(); var rateSum =(query.Sum(d => d.OrderSubtotal)); 查询= query.Where(C => (DbFunctions.DiffDays(为MinDate,MAXDATE)== 0) “rateSum”:???(DbFunctions.DiffDays(为MinDate,MAXDATE)/ 30 == 0) “rateSum”“ (rateSum /(DbFunctions.DiffDays(为MinDate,MAXDATE)/ 30)“); – Manoj