1
I have this select
which on the basis of it was made in the entity framework
select PedidoVenda.Id, Funcionarios.Nome,
FaturaContasReceber.FaturaContasReceberPId, FaturaContasReceberP.TotalFatura,
(SELECT SUM(Total) FROM PedidoVendaProdutos
WHERE PedidoVendaProdutos.PedidoVendaID = 1) AS toTAL
from PedidoVendaProdutos
inner join PedidoVenda on PedidoVenda.Id = PedidoVendaProdutos.PedidoVendaID
inner join FaturaContasReceberP on FaturaContasReceberP.PedidoVendaId = PedidoVenda.Id
inner join FaturaContasReceber on FaturaContasReceber.FaturaContasReceberPId = FaturaContasReceberP.Id
inner join Produtos on Produtos.Id = PedidoVendaProdutos.ProdutoID
inner join Funcionarios on Funcionarios.Id = PedidoVenda.VendedorID
where PedidoVenda.Id = 1 and FaturaContasReceberP.Id = FaturaContasReceber.FaturaContasReceberPId
group by PedidoVenda.Id, Funcionarios.Nome, FaturaContasReceber.FaturaContasReceberPId, FaturaContasReceberP.TotalFatura
, PedidoVendaProdutos.PedidoVendaID
But what has been done does not have the subquery
:
Is this way:
var fatura = db.PedidoVendaProdutos.Include(a => a.PedidoVenda).Include(a => a.PedidoVenda.Empresa).Include(a => a.PedidoVenda.Vendedor).Include(a => a.Produto)
.Join(db.FaturaContasReceberP, p => p.PedidoVendaID, f => f.PedidoVendaId, (p, f) => new { PedidoVendaProdutos = p, FaturaContasReceberP = f })
.Join(db.FaturaContasReceber, f => f.FaturaContasReceberP.Id, ft => ft.FaturaContasReceberPId, (f, ft) => new { FaturaContasReceberP = f, FaturaContasReceber = ft })
.Where(a => (a.FaturaContasReceber.Data >= periodoInicial && a.FaturaContasReceber.Data <= periodoFinal)
&& (empresa != 0 ? a.FaturaContasReceberP.FaturaContasReceberP.PedidoVenda.EmpresaID == empresa : a.FaturaContasReceberP.FaturaContasReceberP.PedidoVenda.EmpresaID != 0)
&& (produto != 0 ? a.FaturaContasReceberP.PedidoVendaProdutos.ProdutoID == produto : a.FaturaContasReceberP.PedidoVendaProdutos.ProdutoID != 0)
&& (a.FaturaContasReceber.Cancelado == false && todos == false ? a.FaturaContasReceber.Quitado == quitado : a.FaturaContasReceber.Quitado == true || a.FaturaContasReceber.Quitado == false)
&& (a.FaturaContasReceber.FaturaContasReceberPId == a.FaturaContasReceberP.FaturaContasReceberP.Id)
).GroupBy(a => new
{
a.FaturaContasReceberP.PedidoVendaProdutos.ProdutoID,
a.FaturaContasReceberP.FaturaContasReceberP.PedidoVenda.Vendedor.Nome,
a.FaturaContasReceberP.FaturaContasReceberP.PedidoVendaId,
a.FaturaContasReceberP.PedidoVendaProdutos.Total,
a.FaturaContasReceberP.PedidoVendaProdutos.Produto.nome,
a.FaturaContasReceberP.PedidoVendaProdutos.Produto.Comissao,
a.FaturaContasReceber.FaturaContasReceberPId,
a.FaturaContasReceberP.FaturaContasReceberP.TotalFatura,
})
.Select(a => new
{
a.Key.PedidoVendaId,
TotalPago = a.Sum(b => b.FaturaContasReceber.Total),
Nome = a.Key.Nome,
Total = a.Key.Total,
Comissao = a.Key.Comissao,
Produto = a.Key.nome,
TotalFatura = a.Key.TotalFatura,//a.Sum(b => b.FaturaContasReceber.Valor),
Porcentagem = (a.Key.Total * 100) / a.Key.TotalFatura,
ValorRecebido = (a.Sum(b => b.FaturaContasReceber.Total) * ((a.Key.Total * 100) / a.Key.TotalFatura)) / 100
})
.OrderBy(a => a.PedidoVendaId)
.ToList();
And I need to include this subquery
(SELECT SUM(Total) FROM PedidoVendaProdutos
WHERE PedidoVendaProdutos.PedidoVendaID = 1)
How can I include lambda
?
If anyone has any example, explanation. Thank you.
Thank you very much, that’s just what I needed.
– Mariana
Not at all. I’m glad it worked out!
– Raquel Pinheiro