0
내 상황은 내가 단순화하는 테이블을 가지고있다 현재 값 일치 조건보다 큰 값을 선택, 다음과 같습니다MS-액세스
Sort| IsHeader
1 | 0
2 | 0
3 | 1
4 | 0
5 | 0
6 | 1
7 | 0
8 | 0
9 | 0
나는 업데이트하는 쿼리를 만들려고 노력하고 있어요
T-SQL에서Sort| IsHeader| HeaderSort
1 | 0 | 0
2 | 0 | 0
3 | 1 | 3
4 | 0 | 3
5 | 0 | 3
6 | 1 | 6
7 | 0 | 6
8 | 0 | 6
9 | 0 | 6
내가 아주 쉽게 작업을 수행 할 수 있습니다 :
update MT set HeaderSort =
(
select isnull(max(Sort),0) from MyTable where Sort <= MT.Sort and IsHeader = 1
) as HeaderSort
from MyTable MT
각 세부 라인에 대한 새로운 HeaderSort 라인이 최종 결과로, 라인이 속하는 헤더하는 보여 다음과 같이 액세스 버전에서
내 시도는 다음과 같습니다. "작업 업데이트 가능한 쿼리를 사용해야합니다"
Update MyTable set HeaderSort =
(
select nz(max(Sort),0) from MyTable where Sort <= MT.Sort and IsHeader = 1
)
이, 그러나 준다 오류. 값을 가져 오는 논리에 내 오류가 있습니까? 아니면 일부 ms 액세스 구문입니까?
합니다. 'DLookUp'은 진정한 도메인 집계가 아니라, 내가 이해하는 한 첫 번째 결과를 반환하는 레코드 세트 래퍼입니다. 'DLookUp'에서 집계와 식을 사용할 수 있습니다. 'DLookUp ("Max (Field1)", "MyTable")'은 덜 최적화 된'DMax ("Field1", "MyTable")' –
나는 SQL 문,하지만 내 목적을 위해 DLookup 메서드를 잘 작동합니다. – Quark