none
Linq 数据多字段传回最大值的问题 RRS feed

  • 问题

  • 小弟的问题是在编写linq的代码时  只传回一个字段的最大值时  代码是可以通过的如下 :

    Dim 黑三原色最大值 = (From 辨识颜色表 In 颜色数据表.辨识颜色表
                        Where 辨识颜色表.颜色 = "黑" Select 辨识颜色表.三原色R值).Max
    Return  黑三原色最大值


    功能运作正常  但编写传回同一张表的多字段最大值时 却发生了以下的问题

    请问各位大大 这里有办法写成多字段回传最大值吗?  还是只能一栏写一串linq 去传呢?

    发生错误的图片:

    2012年12月20日 22:44

答案

  • 加一个group by into 就可以了

    select .. from t where ...  group t by .... into g select (....., col=g.max(t=>t.col))



    Visual C++ MVP

    2012年12月21日 1:07
    版主
  • 以解決問題了  貼出源碼:

     Dim 黑三原色最大值 = (From 辨識顏色表 In 顏色資料表.辨識顏色表 Where 辨識顏色表.顏色 = "紅" Order By 辨識顏色表.三原色R值 + 辨識顏色表.三原色G值 + 辨識顏色表.三原色B值 Descending Select 辨識顏色表).FirstOrDefault()

    • 已标记为答案 向恩 2012年12月22日 14:36
    2012年12月22日 14:36

全部回复

  • 加一个group by into 就可以了

    select .. from t where ...  group t by .... into g select (....., col=g.max(t=>t.col))



    Visual C++ MVP

    2012年12月21日 1:07
    版主
  • 不太理解 

     Sheng Jiang 蒋晟可以请您帮忙写出对应这个需求的linq代码吗?

     

    我目前写到这里  也不晓得对不对

     

    Dim 黑三原色最大值 = From 辨识颜色表 In 颜色数据表.辨识颜色表i
    
                        Where 辨识颜色表.颜色 = "黑A" Group 辨识颜色表 By 辨识颜色表.三原色值, 辨识颜色表.三原色值, 辨识颜色表.三原色值 Into MAX()
    
     


    2012年12月21日 10:52
  • 以解決問題了  貼出源碼:

     Dim 黑三原色最大值 = (From 辨識顏色表 In 顏色資料表.辨識顏色表 Where 辨識顏色表.顏色 = "紅" Order By 辨識顏色表.三原色R值 + 辨識顏色表.三原色G值 + 辨識顏色表.三原色B值 Descending Select 辨識顏色表).FirstOrDefault()

    • 已标记为答案 向恩 2012年12月22日 14:36
    2012年12月22日 14:36