У меня есть этот критерий nhibernate:
criteria.Add(Subqueries.PropertyIn("Id", DetachedCriteria.For<ReconItemReconSide>()
.SetProjection(Projections.ProjectionList()
.Add(Projections.GroupProperty("ReconItemFk"))
.Add(Projections.Min("ReconciliationSideFk")))
.Add(Expression.In(Projections.Property("ReconItemFk"), items))
));
- который становится этим запросом (я удалил некоторые поля из внешнего выбора, чтобы минимизировать длину здесь):
SELECT this_.Id as Id8_0_
FROM CI.BM_RECONCILIATION_SIDE this_
WHERE this_.Id in (SELECT this_0_.BM_RECON_ITEM as y0_,
min(this_0_.BM_RECONCILIATION_SIDE) as y1_
FROM CI.BM_RECON_ITEM_RECON_SIDE this_0_
WHERE this_0_.BM_RECON_ITEM in (345061 /* :p0 */,345877 /* :p1 */)
GROUP BY this_0_.BM_RECON_ITEM)
Проблема в том, что я хочу, чтобы внутреннее выделение выбрало только одно поле (мин. (This_0_.BM_RECONCILIATION_SIDE)), но groupby также добавляет поле groupby к выделенному.
Я хочу иметь возможность создавать группу без необходимости проецирования самого поля группы.
Запрос должен выглядеть примерно так:
SELECT this_.Id as Id8_0_
FROM CI.BM_RECONCILIATION_SIDE this_
WHERE this_.Id in (SELECT
min(this_0_.BM_RECONCILIATION_SIDE) as y1_
FROM CI.BM_RECON_ITEM_RECON_SIDE this_0_
WHERE this_0_.BM_RECON_ITEM in (345061 /* :p0 */,345877 /* :p1 */)
GROUP BY this_0_.BM_RECON_ITEM)
Есть идеи, как это решить?