스토어가 상점 포털에 로그온 할 때부터 데이터가 기록 된 상태를 기록하는 테스트 데이터베이스가 있습니다.Linq - 값을 0으로 설정하면 다음 값을 얻는 방법
예 : (단지 목적을 시각화 -하지 실제 데이터베이스) 나는 데이터베이스에서 다양한 데이터를 얻을 필요가
Stores
Id Description Address City
1 Candy shop 43 Oxford Str. London
2 Icecream shop 45 Side Lane Huddersfield
Connections
Id Store_Ref Start End
1 2 2011-02-11 09:12:34.123 2011-02-11 09:12:34.123
2 2 2011-02-11 09:12:36.123 2011-02-11 09:14:58.125
3 1 2011-02-14 08:42:10.855 2011-02-14 08:42:10.855
4 1 2011-02-14 08:42:12.345 2011-02-14 08:50:45.987
5 1 2011-02-15 08:35:19.345 2011-02-15 08:38:20.123
6 2 2011-02-19 09:08:55.555 2011-02-19 09:12:46.789
합니다. 이미 최대 및 평균 연결 기간을 받았습니다. (그래서 아마도 매우 자명 한 것 같습니다.) 어떤 연결이 가장 오래 지속되었는지에 대한 정보가 필요합니다. 나는 Linq의 Min() 함수를 즉시 생각했지만, 알 수 있듯이 데이터베이스에는 즉시 시작되고 종료 된 연결도 포함됩니다. 따라서 해당 데이터는 실제로 데이터 분석에 "유효하지"않습니다.
제 질문은 최소값을 얻는 방법이지만, 값이 0이면 가장 낮은 다음 값을 얻으십시오.
내 LINQ 쿼리 지금까지 (최소() 함수를 구현하는) :
var min = from connections in Connections
join stores in Stores
on connections.Store_Ref equals stores.Id
group connections
by stores.Description into groupedStores
select new
{
Store_Description = groupedStores.Key,
Connection_Duration = groupedStores.Min(connections =>
(SqlMethods.DateDiffSecond(connections.Start, connections.End)))
};
내가 비록 여러 쿼리 및/또는 문을 통해 유효한 값을 얻을 수 있다고 알고 있지만, 내가 궁금했다 내 프로그램은 linq 쿼리가 반환 될 것으로 기대하고 내 선호도가 프로그램을 가능한 한 "빛"으로 유지하기 때문에 모든 쿼리를 한 번만 수행하는 것이 가능합니다.
위대한/간단한 방법으로 해결하려면 공유해야합니다. 귀하의 기부금은 매우 높이 평가됩니다! :)
작동합니다! 나는 그것이 더 어려웠을 것이라고 생각했지만, 그것은 매우 단순 해졌습니다. 나는 그것에 대해서 생각조차하지 않았습니다. (나는 아직 람다 식으로 그다지 많은 경험을 가지고 있지 않다.)하지만 어쨌든, @ 프레 데리 크에 감사한다. 대단히 감사합니다! – doc92
이것이 가장 쉬운 해결책이었습니다. 당신은 문장을 더 복잡하게 만들 것입니다. "검색 만 유효합니다."라고 말하는 방식입니다. – Frederiek