0
私の状況は私が簡略化されていることの表を持っているということである電流値の一致基準よりも低い最大値を選択し、次のようになります。MS-Accessの
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'で集約と式を使うことができます。 '' Max(Field1) "、" MyTable ")'は、 '' DMax( "Field1"、 "MyTable")のようにあまり最適化されていません。 –
私は完全にSQL私の目的のために、DLookupメソッドは正常に動作します。 – Quark