小编mfa*_*fas的帖子

NHibernate QueryOver CASE WHEN 计算列值

我一直在尝试在 NHibernate QueryOver 中执行以下 T-SQL,但没有成功:

SELECT Id, SUM(CASE MyValue WHEN 1 THEN Volume ELSE Volume * -1 END)
FROM MyTable
GROUP BY Id
Run Code Online (Sandbox Code Playgroud)

我试图总结所有成交量,但MyValue=1应为正值,否则为负值。到目前为止,我得到了:

 var result = this.Session.QueryOver<MyTable>()
    .Select(Projections.Group<MyTable>(x => x.Id),
    Projections.Conditional(Restrictions.Eq(Projections.Property<MyTable>(x
        => x.MyValue), '1'),
    Projections.Property<MyTable>(x => x.Volume),
    Projections.Property<MyTable>(x => x.Volume * -1)))
    .List();
Run Code Online (Sandbox Code Playgroud)

但是你可以想象 NHibernate 不知道 column Volume * -1,那么我如何在我的 CASE 中进行这个计算?

nhibernate select case queryover

4
推荐指数
1
解决办法
3821
查看次数

标签 统计

case ×1

nhibernate ×1

queryover ×1

select ×1