표 하루 종일 초당LINQ 쿼리 또는 저장 프로 시저
datetime a1 b1 x2 ...
07-01-2009 13:10 8 9 10
07-01-2009 13:11 8 8 2
07-01-2009 13:12 9 1 1
1 행 (= 86400 행)과 같은 정해진 열의 최대 값을 반환하는 단계; ~ 40 칼럼; 모두 같은 형식
최대 값을 검색하고 열을 지정할 시간을 찾고 있습니다.
최대 값을 검색하고 시간대 내에서 열의 시간을 지정하여 검색하도록하는 방법을 찾고 있습니다.
Select top 1 time,a1 from table
where (datetime>=begin and datetime<end)
order by a1 desc
같은
이뭔가 작동하지만 매개 변수로 열을 사용할 수 없습니다.
LINQ 솔루션이나 SP가 좋을 것입니다.
최대 값을 검색하기 위해 전체 데이터 집합을 정렬 할 때 성능에 대해 걱정해야합니까? 어쩌면 MAX 기능이 더 빠를 것입니다. 디모데 (tvanfossen가)
Dim q2 = context.table _
.Where("t >= @0 AND t < @1", begin, end) _
.OrderBy("@0 desc", col) _
.Take(1) _
.Select(col)
을 제안처럼
UPDATE 나는, 그것을 동적 LINQ 방법을 구현하기 위해 노력하지만이 테이블의 첫 번째 값을 반환합니다. 이것은 최대 값이 아닌 시간 프레임의 첫 번째 값을 반환합니다. SQL 프로파일 러를 보면 ORDER 절이 없다는 것을 알 수 있습니다.
아이디어가 있으십니까?
업데이트 2
어떤 이유로 대체 값이 orderby 절에서 작동하지 않습니다.
.OrderBY은 (골 + "내림차순")는 열 이름은 동적하려면
@ 알렉스 : 나는, SQL에 LINQ는 그 SQL로 변환 할 수 없습니다 클라이언트에서 처리 할 수 있습니다에 의해 그 순서를 의미하는 것이라 생각합니다. – Richard
@ 리차드 : 좋은 지적, 네가 맞다고 생각해. –