編集:私は少し質問を読み違える - 私は、生成された番号の接頭辞として「STIのを」追加しました、そして1
で開始あなたは3でこれを行うことができるかもしれませんthis answerに記載されているような2段階プロセスである。私はKMS_VEJMIDT_BRUDT
テーブルにID主キーフィールドがあると仮定しています。
ステップ1:
SELECT C.ID, "Sti"&[RowNo] AS NEXT_VEJNAVN
FROM (SELECT A.ID,
A.VEJMTYPE,
(select count(*) from KMS_VEJMIDT_BRUDT as B where A.ID>=B.ID AND B.VEJNAVN Is Null and A.VEJMTYPE = "Sti") AS RowNo
FROM KMS_VEJMIDT_BRUDT AS A
WHERE A.VEJNAVN Is Null
and A.VEJMTYPE = "Sti"
) AS C;
注this answerで説明したように行番号の回避策の使用:
次のSQLを使用してGENERATE_NEXT_NAVN
という名前SELECT
問い合わせください。これを使用して、ソーステーブルに存在する最高のNAVNから始まるインクリメント番号を生成します。
ステップ2: コピー一時テーブルへのステップ1のクエリ出力:
SELECT GENERATE_NEXT_NAVN.*
INTO NEXT_NAVN_TEMP
FROM GENERATE_NEXT_NAVN;
ステップ3: 更新一時テーブル内の値を使用してソーステーブル:
UPDATE KMS_VEJMIDT_BRUDT
INNER JOIN NEXT_NAVN_TEMP
ON KMS_VEJMIDT_BRUDT.ID = NEXT_NAVN_TEMP.ID
SET KMS_VEJMIDT_BRUDT.VEJNAVN = [NEXT_NAVN_TEMP].[NEXT_VEJNAVN];
どのようなエラーがありますか? –
[msアクセス2007クエリで変数を宣言して設定する方法](https://stackoverflow.com/questions/5198193/how-to-declare-and-set-variable-in-ms-access-2007-クエリ) – June7
これはアクセスコードに似ていません。アクセスはVBAであり、VBAは宣言関数を使用しません。 –