日期:2014-05-20  浏览次数:20794 次

获取最小值的一组数据(求语句)
表A
Id  FromPT OrderId OrderProductVariantID ShippingGroup TrcakingGroup
1       A       100                  100                        1                    1          
2       A       100                  101                        1                    1
3       A       100                  102                        2                    0
4       A       100                  103                        2                    0
5       A       100                  104                        3                    0
6       A       100                  105                        3                    0

根据FromPT、OrderID以及TrcakingGroup=0
获取ShippingGroup 最小一组的数据
最后得到的是ShippingGroup=2的那组数据

3    A      100          102                2              0
4    A      100          103                2              0

 var query=from p in _context.ShippingOrderHistory
           where p.FromPT==FromPT&&p.OrderId==OrderID&&p.TrcakingGroup==0
请问其他的条件怎么写?

------解决方案--------------------
本帖最后由 q107770540 于 2014-02-19 17:56:32 编辑

var query=(from p in _context.ShippingOrderHistory
          where p.FromPT==FromPT&&p.OrderId==OrderID&&p.TrcakingGroup==0
          group p by p.ShippingGroup into g
          orderby g.Key
          select g).FirstOrDefault();

//lamda
var query= _context.ShippingOrderHistory.Where(x=>x.TrcakingGroup == 0 && FromPT == FromPT && OrderId =OrderID)
             .GroupBy(x=>x.ShippingGroup)
             .OrderBy(g=>g.Key)
             .Select(g=>g).FirstOrDefault();