【发布时间】:2018-04-04 12:28:59
【问题描述】:
我知道基本的 LINQ,但我已经有几年没有使用过它了。所以我忘记了LINQ。我无法将此 SQL 查询转换为 LINQ。
SELECT
[CompanyName]
,[ContactPerson]
,[Address]
,[Email]
,[InActive]
,(Select SUM(isnull(CreditAmount,0) - isnull(DebitAmount,0)) FROM [dbo].[SupplierTransaction] where SupplierId = s.SupplierId) as Balance FROM [dbo].[Supplier] S
我试过了,但它不起作用
from s in Suppliers
select new
{
s.SupplierId,
s.CompanyName,
s.ContactPerson,
s.Address,
s.Email,
s.InActive,
s.BranchId,
s.CreateDate,
s.CreatedBy,
s.UpdateDate,
s.UpdatedBy,
s.PhoneNumber,
Balance = (from v in SupplierTransactions
where v.SupplierId == s.SupplierId
select (v.Sum(v.CreditAmount-v.DebitAmount)))
}
【问题讨论】:
-
也许你应该展示你迄今为止尝试过的和没有奏效的。提供您得到的错误、异常或意外结果。这样人们就可以帮助您,而不是为您编写代码。
-
抱歉现在更新我的问题
-
请详细说明它是如何不工作的
-
请扩展
not working。 -
Balance = (from v in SupplierTransactions where v.SupplierId == s.SupplierId select ((v.CreditAmount).Sum()-(v.CreditAmount).Sum())) } 我试过了这。但显示此错误“'十进制'不包含'Sum'的定义,并且最佳扩展方法重载'Queryable.Sum(IQueryable
)'需要'IQueryable '类型的接收器”
标签: c# sql sql-server linq