3

私はこのようなSQLクエリを持っています

SELECT WI.[WorkItemID]  ,[WorkItemNumber]  ,[ToDate]     
FROM [WorkItem] AS WI INNER JOIN  [WorkItemTrack] AS WT on WI.WorkItemID=WT.WorkItemID
WHERE MAX([ToDate]) BETWEEN @StartDate AND @EndDate

対応するEntityFrameworkQueryは

 workItems = from wi in workItems.Where(p => p.IsActive)
             join wt in entityCollection.WorkItemTrack on wi.WorkItemID equals wt.WorkItem.WorkItemID
             where wt.ToDate >= fromdate && wt.ToDate <= todate
             select wi;

ここでは、エンティティフレームワーククエリでwt.ToDateにMAXを使用できません

私を助けてください

4

2 に答える 2

1

SqlServer.Max()メソッドを試しましたか。これらは、使用できる集約メソッドです。

SELECT VALUE SqlServer.MAX(p.ListPrice)
FROM AdventureWorksEntities.Product as p 
于 2012-06-29T05:49:09.603 に答える
1

where句の最大値は機能しないはずです。

「HAVING句または選択リストに含まれるサブクエリに含まれておらず、集計される列が外部参照でない限り、集計はWHERE句に表示されない場合があります。」

ただし、特定の列に基づいて最上位の結果が必要な場合は、その列ごとに順序を追加してから、そのセットの最上位の結果を取得してください。

于 2012-06-29T06:51:27.553 に答える