解决方案 »

  1.   

    union
    可以把多个请求结果合并成一个
    linq 无论是EF和是SQL 里面应该都有相应的Union方法
      

  2.   

    您说的这个关键字 我这两个查询好像不行.
    首先谢谢回复,我截图了 您看看SQL图片。实际上可以只用第2条SQL语句就可以求出我的结果,但是根据查询所有的结果来看,使用第2条SQL语句查询后由于被除数有0,那么就会出现图中第三个结果集的数据,那个SumAvspeed就为0了,所以我只能先将数据合并成第一条SQL的结果集再执行第2条SQL来得到我所需要的数据.
      

  3.   

    仔细看了你两段SQL,首先返回的都是数字,其次第二句就比第一句少一个V,然后其它顺序上要做下调整然后没看懂你的第一段和第二段的问题,因为你已经处理掉了被除数为0的问题,如果你第二段是基于第一段执行的结果,那你可以先将第一段执行结果放入一个临时表
    #tmpTable,然后第二句SQL就是对这个临时表操作
      

  4.   


    不好意思 忘记说了  如果说按照您这种方法来做的话  使用到临时表 ,最终这个代码 我是需要转换到C#lambde表达式的 因为不涉及大数据库 现在之所有涉及到数据库  是因为方便数据的查询和处理 来咨询问题的
      

  5.   

    List<OrdinaryPolicyLogEntity> list = null;
               var query = from o in list
                           group o by new { o.Lid, o.LogType } into g
                           select new { SumA = g.Sum(x => x.Station) };
    这个是我随便用一个实体来做的例子,你可以参考这个先获取第一个结果,然后第二部分就基于query做操作
      

  6.   

    首先谢谢回复,如你所说,直接执行这个SQL语句是有问题的,因为乘和除都会遇到为0的情况,
    我的数据需求应该如下:
    这个是表的原始数据
    必须要先合并一次数据 如下图
    然后再执行以下SQL语句,计算结果为0的时候赋值为0,如果上面和以下的SQL语句可以合并为一句就最好了。
    select StatisLlane ,Sum(Avspeed * Volume) / Sum(Volume) as SumAvspeed,sum(Volume) as SumVolume,max(SumOccupancy) group by StatisLlane这样计算后 最后得出来三条结果
    Measureline,StatisLlane,SumAvspeed,SumOccupancy,SumVolume
    0                 0                  0                0                       0                 
    0                 1                  50              3.99                   4
    0                  2                  75             4.16                    6