2012-03-29 3 views
-2

новообращенный это SQLServer corralate подзапрос в LINQ -corralte подзапрос в LINQ

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: кажется, что нет хороших ответов не получил за предыдущие –

+0

@huMptyduMpty, он спросил 7 вопросов, по крайней мере, один тоже не получил хорошие ответы ??? Я так не думаю. –

+0

@SaiKalyanAkshinthala: Да, возможно. Но есть такая ситуация, как это ** http: //meta.stackexchange.com/questions/126536/what-if-all-answers-to-my-question-are-bad** :) –

ответ

0

Может быть что-то вроде этого:

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 
     } 
    );