[英]linq-to-sql: GROUP BY and MIN() in SELECT part
在MySql中,我有以下(简化)查询:
SELECT
ct.ColumnA,
MIN(IF(Constant + mt.ColA >= mt.ColB, Constant + mt.ColA, mt.ColB)) AS ResultCol
FROM
master_table mt
INNER JOIN child_table ct ON (ct.MasterID = mt.ID)
WHERE
ct.ColumnB = 1
...
GROUP BY
ct.ColumnA;
该查询在MySql中运行完美,但无法将其转换为Linq2sql。
好的,这是我的操作方法(没有使用linq2sql进行测试,我使用linq2db项目):
var q =
from mt in db.MasterTable
join ct in db.ChildTable on mt.ID equals ct.MasterID
where
ct.ColumnB = 1 &&
...
group new { ct, mt } by new { ct.ColumnA } into g
select
new
{
g.Key.ColumnA,
ResultCol = g.Min(x => myConstant + x.mt.ColA > x.mt.ColB
? myConstant + x.mt.ColA
: x.mt.ColB)
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.