我正在尝试将mySql
数据库中的查询放入我的.net core 2.2
系统中的linq,但是由于我对linq不太了解,因此它返回了一些不同的数据,我可以跟踪。
这是查询:
SELECT *
from ( select x.data_parecer
, count(1) qtd
, sum(case when x.leakage < 0 then 0 else x.leakage end) leakage
from ( SELECT trunc(data_parecer) as data_parecer
, requisicao
, max(valor_inicial_aux)-max(valor_fechado_aux) leakage
FROM analise aa
where COALESCE(status_caso,0) > 1
and COALESCE(status_caso,0) != 99
and COALESCE(status_caso,0) != 10
and usuario_analise = 'VB5930'
and trunc(data_parecer) between trunc(sysdate-1095) and trunc(sysdate)
group by requisicao
, trunc(data_parecer)
--order by data_parecer
order by 2
) x
group by x.data_parecer
) calculo
where calculo.qtd > 0
这是我到目前为止所拥有的:
var firstQuery = dbContext.Analyzes
.Where(
a =>
(a.CaseStatus != null ? a.CaseStatus :0 ) != 99 &&
(a.CaseStatus != null ? a.CaseStatus :0 ) != 10 &&
(a.CaseStatus != null ? a.CaseStatus : 0) > 1 &&
a.UserAnalyze.Equals(userlogin) &&
a.FeedbackDate >= dateFrom &&
a.FeedbackDate <= dateTo)
.OrderBy(a => a.FeedbackDate)
.Select(a => new
{
a.FeedbackDate,
a.Request,
InitialValue = a.InitialValueAux,
ClosedValue =a.ClosedValueAux
})
.GroupBy(a => a.Request)
.Select(gp => new
{
FeedDate = gp.Select(a => Convert.ToDateTime(a.FeedbackDate).Date).ToList()[0],
Leakage = gp.Max(a => a.InitialValue) - gp.Max(a => a.ClosedValue)
})
.GroupBy(a => a.FeedDate).Select(gp => new
{
FeedbackDate = gp.Key,
Quantidade = gp.Count(),
Leakage = gp.Sum(a => a.Leakage)
})
.ToList();
结果仍然有些不同,我感觉已经达到了极限。 有人可以帮我吗?