【发布时间】:2021-07-12 04:19:37
【问题描述】:
我有一个 SQL 查询,我试图在 LINQ 中查询它,但我没有
获得正确的子查询结果
SQL查询:
SELECT
(1) query_no,
(view_supplier_ledger_ap.co_code) ,
(view_knockoff_ap.year_src) ,
(view_knockoff_ap.period_src) ,
(view_knockoff_ap.vchrtype_src) ,
(view_knockoff_ap. Amount),
(SELECT Sum(view_knockoff_ap_b. Amount)
FROM view_knockoff_ap
view_knockoff_ap_b
WHERE
( view_knockoff_ap.year_src = view_knockoff_ap_b.year_src ) and
(view_knockoff_ap.period_src = view_knockoff_ap_b.period_src)
payment_amount_sum
FROM view_supplier_ledger_ap,
ap_custsupplier,
view_knockoff_ap,
WHERE
(view_supplier_ledger_ap.doc_type <> 'ACP Bill')
and(view_supplier_ledger_ap.co_code = ap_custsupplier.Cst_CO_CODE)
现在,这是我遇到的问题。当我在选择中进行选择时,每个对象上返回的 AMOUNT_SUM 字段的值不正确:
MY LINQ:
var Query1 = (from LedAP in context.VIEW_SUPPLIER_LEDGER_AP
join cs in context.AP_CUSTSUPPLIER
join konckAP in context.VIEW_KNOCKOFF_AP
join viewallow in context.view_allowed_period_user
select new
{
LedAP.CO_CODE,
LedAP.SUP_CODE,
konckAP.AMOUNT,
AMOUNT_SUM = context.VIEW_KNOCKOFF_AP
.Where(x => (x.YEAR_SRC == x.YEAR_SRC) &&
(x.PERIOD_SRC == x.PERIOD_SRC))
.GroupBy(x => x.AMOUNT)
.Select(a => a.Sum(b =>
b.AMOUNT)).FirstOrDefault()
});
【问题讨论】:
-
如果你的 SQL 比 LINQ 更好,那为什么不直接使用 sql 来处理复杂的查询呢?没有实体框架警察会来逮捕你。