corralte子查询

问题描述:

转换这个SQLSERVER corralate子查询LINQ -corralte子查询

SELECT 
    ET2.[OID],  
    ET2.[EID], 
    ET2.[OrID], 
    ET2.ValidFromDate, 
    ET2.Quantity, 
    ET2.RAQID, 
    ET2.Threshold 
FROM 
    [CDev].[Inf].[FEThreshold] AS ET2 
WHERE  
    ET2.ValidFromDate = 
    (
     SELECT 
     MAX(ET1.ValidFromDate) 
     FROM  
     [CDev].[Inf].[FEThreshold] AS ET1  
     WHERE 
     ET1.OID = ET2.OID 
     AND ET1.EID = ET2.EID 
     AND ET1.OrID = ET2.OrID 
    ) 
+0

@SaiKalyanAkshinthala:好像在以前的 – 2012-03-29 08:21:21

+0

收到@huMptyduMpty没有好的答案,他问了7个问题,至少有一个也没有收到好答案?我不这么认为。 – 2012-03-29 08:40:02

+0

@SaiKalyanAkshinthala:可以。但也有一些这样的情况,以及** http://meta.stackexchange.com/questions/126536/what-if-all-answers-to-my-question-are-bad** :) – 2012-03-29 08:41:44

也许是这样的:

var result= 
     (
     from ET2 in db.FEThreshold 
     where 
      ET2.ValidFromDate= 
      (
       from ET1 in db.FEThreshold 
       where ET1.OID == ET2.OID 
       && ET1.EID == ET2.EID 
       && ET1.OrID == ET2.OrID 
       select ET1.ValidFromDate 
      ).Max() 
     select new 
     { 
      ET2.OID,  
      ET2.EID, 
      ET2.OrID, 
      ET2.ValidFromDate, 
      ET2.Quantity, 
      ET2.RAQID, 
      ET2.Threshold 
     } 
    );