【发布时间】:2017-11-06 03:24:48
【问题描述】:
我想知道有多少人在 especify 本地,使用此人的进入和退出验证。如果他已经在本地输入,那么他将生成一个带有TrCode = "C0" 的事务。当他离开这个地方时,他会生成一个TrCode = "CI"。还有其他类型的 TrCode,但对这种验证没有用处。我有一个查询返回给我这个结果如下:
var query = from a in context.CardDB
join c in context.tblTransaction on a.CardNo equals c.CardNo
where c.TrCode == "C0" || c.TrCode == "CI"
where c.TrSiteCode == sitecode
select c;
现在我有了所有具有 TrCode == "C0" 或 TrCode == "CI" 的行。但结果给了我雇主(CardDB)所做的所有交易。所以结果给出了很多不同雇主的交易。有时一些雇主会进行 2 次甚至 3 次交易,例如,当他到达时,当他出去吃午饭时,然后他回来等等。
我必须在网格中显示通常交易数量比TrCode == "C0" 多于TrCode == "CI" 的雇主。所以,我必须做的是只计算具有相同 ID 的雇主的交易,并且在网格中显示它时,只显示该雇主的一行而不是所有行。
已经开始了,谢谢!
【问题讨论】:
-
CardDB 中有哪些列/字段?
-
有 ID、CardNo(我在 tblTransaction 表中用作外键)和 TrSiteCode 用于过滤雇主的工作场所
-
我不擅长使用“SQL 风格”的 LINQ,尤其是针对不在我面前的数据库模型。但从根本上讲,您需要按 TrSiteCode 和 TrCode 进行分组,然后使用 Sum。这将为您提供三列 - TrSiteCode、TrCode 和 Sum。
标签: c# asp.net visual-studio entity-framework