gpt4 book ai didi

c# - 使用 JOIN、GROUP BY、SUM 将 SQL 转换为 LINQ,将值相乘两个列表

转载 作者:行者123 更新时间:2023-11-30 17:30:13 25 4
gpt4 key购买 nike

SELECT
(SUM(L.total_linea) * I.porcentaje / 100) AS iva
FROM
linea_ventas L
JOIN
iva I ON L.id_iva = I.id_iva
GROUP BY
L.id_iva

在将查询添加到我的代码之前,我尝试使用 LINQPad 5 程序直接针对我的数据库编写查询,但我在这里被阻止了:

 from l in linea_ventas
join i in ivas on l.id_iva equals i.id_iva
group l by new { l.id_iva } into g
select new
{
iva = g.Sum(l => l.total_linea)
}

最佳答案

此 SQL 查询不正确,因为您应该将 SELECT 子句中的内容带入 GROUP BY 子句中(除非您在聚合函数中使用它),所以这里您应该使用 I.porcentaje在 GROUP BY 中,虽然我不认为按百分比之类的东西分组是您想要的。

考虑到 porcentaje,我猜您想对所有 total_linea 求和,因此,例如,您可以将查询写成这样:

你已经正确地加入了表,加入后,因为你只需要id_ivatotal_lineaporcentaje,在匿名中只收集这些值类型,然后按 id_iva 对它们进行分组(就像您自己所做的那样),然后在您的分组中选择值并进行计算:

var result = from l in linea_ventas
join i in ivas on l.id_iva equals i.id_iva
select new {
l.id_iva,
value = l.total_linea * i.porcentaje / 100
} into selected
group selected by selected.id_iva into groups
select groups.Sum(v => v.value);

关于c# - 使用 JOIN、GROUP BY、SUM 将 SQL 转换为 LINQ,将值相乘两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com