1

8つの整数値を持つレコードを含むテーブルがあります。

TableChild:
    Parent    Name    int1    int2    int3    int4    int5    int6    int7    int8
    a         w       1       3       2       0       1       3       4       3
    a         x       4       5       2       5       3       2       4       6
    b         y       5       3       5       3       1       1       3       4
    b         z       4       1       2       4       2       2       4       2

たとえば、「x」の最大値を見つける必要があります。また、(個別に)たとえば、親'a'のテーブル全体で最大値を取得する必要があります。

var query = from row in TableChild
            where row.Name == x
            select new 
            {
                Parent = row.Parent,
                Name = row.Name,
                status = GetHighestValueOfRowInTableChild, 
                ...           
            };

{(a、x、6)}を返します

var queryParent = from row in tableParent     
                  where row.Name == a
                  select new 
                  {
                      Parent = row.Name,
                      status = GetHighestValueOfAllChildItemsInTableChild,
                      ...
                  };

{(a、6)}を返します

.Max()をいじって式を使用しようとしましたが、おそらく複数の結合を使用する必要があるため、運がありませんでしたが、それらがどのように相互作用するかがわかりません。

4

2 に答える 2

3

int {X}プロパティの値を使用して配列を作成し、後で配列の最大値を取得します

var queryParent = from row in tableParent     
                      where row.Name == a
                      select new 
                      {

                         Parent = row.Name,
                         status = 
                         (new int[]{row.int1,row.int2,row.int3,row.int4,
                         row.int5,row.int6,row.int7,row.int8}).Max();
                          ...

                      };
于 2012-09-10T12:48:32.190 に答える
2

非常に多くのレコードをフェッチしていて、DB応答のサイズを小さくする必要がある場合を除いて、すべての列をフェッチMaxしてクライアント側で実行するのがおそらく最善です。

于 2012-09-10T12:45:58.087 に答える