トリガーソリューションのいくつかがすでにこれをカバーしているが、私のシナリオでそれらを機能させることができない場合は、事前にお詫び申し上げます。
50,000行を超えるテーブルがあり、そのすべてにがありID
、およそ5000の異なるID値があります。instrumentID = 1
テーブル内などで100行と50行が存在する可能性がありますがinstrumentID = 2
、列エントリはわずかに異なります。だから私は書くことができます
SELECT * from tbl WHERE instrumentID = 1
100行を返すようにします(これは簡単なことですが、明確にするためです)
私がする必要があるのは、楽器IDが見つかるたびに増分値を作成することなので、次のようなものを試しました。
IntIndex INT IDENTITY(1,1),
dDateStart DATE,
IntInstrumentID INT,
IntIndex1 AS IntInstrumentID + IntIndex,
テーブル作成ステップで。
ただし、レコードがテーブルのどこにあるかに関係なく、最後の値だけを見るだけでレコードのカウントを効果的に提供できるようIntIndex1
に、が見つかったときに増分する必要があります。上記のように、テーブルのすべての行で増分されるのではなく、5001,4002,4003などを取得します。instrumentID
IntIndex1
instrumentID
例は次のとおりです。intInstruments5000および4000の場合
intInstrumentID | IntIndex1
--------- ------------------
5000 | 5001
5000 | 5002
4000 | 4001
5000 | 5003
4000 | 4002
これを行う必要がある理由は、これらの値(それぞれの開始日と終了日instrumentID
)に基づいて2つのテーブルを結合する必要があるためです。私はなどを試しGROUP BY
ましたが、これは両方のテーブルで機能せず、JOINは機能しません。
どうもありがとう