2
으로 변환하십시오. 어떻게이 쿼리를 Linq으로 변환 하시겠습니까?두 개의 열이있는 SQL IN 절을 LINQ
SELECT *
FROM Test T1
WHERE (convert(VARCHAR,T1.IdVersFirmFuente) + convert(VARCHAR,T1.IdVersLib))
IN
(
Select TOP 1 convert(VARCHAR,T2.IdVersFirmFuente) + convert(VARCHAR,T2.IdVersLib)
From Test T2
Where T2.IdVersFirmFuente = T1.IdVersFirmFuente
ORDER BY T2.CodVersion DESC
)
그것은이 같은해야한다 :
var Resul = (from u in nDT2.AsEnumerable()
where (String.Concat(u.Field<int>("IdVersionLibreria").ToString(),u.Field<int>("IdVersionFirmwareFuente").ToString()))
.Contains(
(from y in nDT2.AsEnumerable()
where y.Field<int>("IdVersionFirmwareFuente") == u.Field<int>("IdVersionFirmwareFuente")
orderby y.Field<String>("CodVersion") descending
select String.Concat(y.Field<int>("IdVersionLibreria").ToString(),y.Field<int>("IdVersionFirmwareFuente").ToString())
).Take(1))
select u);
목적은 (많은이있는 경우) 가장 높은 CodVersion 가진 사람들 독특한 "IdVersFirmFuente"을 얻을 수 있습니다
IdVersFirmFuente IdVersLib IdVersion CodVersion
==
236 628 628 1.0.0.0
236 629 629 1.0.0.1
237 628 628 1.0.0.0
239 628 628 1.0.0.0
결과는 다음과 같습니다.
236 629 629 1.0.0.1
237 628 628 1.0.0.0
239 628 628 1.0.0.0
미리 감사드립니다.
감사합니다. 괜찮 았어. var 대답은 nDT2.AsEnumerable()에서 그룹 u에 의해 u로 u를 입력하십시오 에 ("IdVersionFirmwareFuente")로 g.OrderByDescending (e => e.Field ("CodVersion"))을 선택하십시오. –
GoRoS
내가 도와 줘서 다행이다 :) – andriys