LINQ с JOIN, GROUP BY, ORDER BY, SUM, умножить значения два списка - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно преобразовать этот оператор SQL в LINQ:

SELECT SUM(L.total_linea) AS Total, I.porcentaje
FROM linea_pedidos L
INNER JOIN iva I ON L.id_iva = I.id_iva
GROUP BY L.id_iva
ORDER BY I.porcentaje DESC

На данный момент я это сделал, но не могу двигаться вперед.

from l in linea_pedidos
join i in iva on l.id_iva equals i.id_iva
select new
{
    l.id_iva,
    i.porcentaje,
    total = l.total_linea * i.porcentaje / 100
} into s
group s by s.id_iva into g
select g.Sum(t => t.total)

1 Ответ

0 голосов
/ 11 июня 2018

Вам необходимо включить porcentaje в вашу группу.

Если вы подумаете об этом, ваш sql-запрос будет таким же, как

SELECT SUM(L.total_linea * I.porcentaje / 100) AS Total, I.porcentaje
FROM linea_pedidos L
INNER JOIN iva I ON L.id_iva = I.id_iva
GROUP BY L.id_iva , I.porcentaje
ORDER BY I.porcentaje DESC

, который вы можете перевести на

from l in linea_pedidos
join i in iva on l.id_iva equals i.id_iva
select new
{
    l.id_iva,
    i.porcentaje,
    total = l.total_linea * i.porcentaje / 100
} into s
group s by new { s.id_iva , s.porcentaje } into g
orderby g.Key.porcentaje descending
select new { Total = g.Sum(t => t.total) , g.Key.porcentaje  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...