2012-03-29 17 views
-2

convert diese Sqlserver corralate Unterabfrage zu Linq -corralte Unterabfrage in 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: scheint keine gute Antworten für die vorherigen –

+0

@huMptyduMpty erhalten, er hat 7 fragen gestellt, zumindest hat man auch keine guten antworten bekommen ??? Ich denke nicht. –

+0

@SaiKalyanAkshinthala: Ja kann sein. Aber es gibt auch eine Situation wie diese http://meta.stackexchange.com/questions/126536/what-if-all-answer-to-my-question-are-bad** :) –

Antwort

0

Vielleicht so etwas wie folgt aus:

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