C# EF将两条数据集合成一条(根据falg取值)

表设计:

根据小区,楼栋,房屋分组统计,flag=1取最大值作为地板,flag=2取最大值作为窗帘型号

EF:

var sql = from a in commdb.TB_HOUSE_EQUIP.AsNoTracking()
                          where (a.XQMC == model.XQMC || model.XQMC == null)
                          && (a.LDBH == model.LDBH || model.LDBH == null)
                          group a by new { a.XQMC, a.LDBH, a.FWHLAST } into g
                          select new
                          {
                              XQMC = g.Key.XQMC,
                              LDBH = g.Key.LDBH,
                              FWHLAST = g.Key.FWHLAST,
                              Floor = g.Where(a => a.FLAG == 1).Max(a => a.FLOORCURTAIN),//地板
                              Curtain = g.Where(a => a.FLAG == 2).Max(a => a.FLOORCURTAIN)//窗帘
                          };

                if (pageindex == 1)
                    recordCount = sql.Count();//记录总条数
                QueryList = sql.OrderBy(a => a.XQMC).ThenBy(a=>a.LDBH).ThenBy(a=>a.FWHLAST).Skip((pageindex - 1) * pagesize).Take(pagesize).ToArray();

SQL语句:

select a.xqmc,a.ldbh,a.fwhlast,max(case  when flag=1 then floorcurtain else null end) db,max(case  when flag=2 then floorcurtain else null end) cl from tb_house_equip a
group by a.xqmc,a.ldbh,a.fwhlast

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值