トランザクション テーブルをクエリしているレポートがあります。以下のテーブルを簡略化しました。
CREATE TABLE [dbo].[NL_Trans](
[NT_PRIMARY] [int] NOT NULL,
[NT_CODE] [varchar][20] NOT NULL,
[NT_CAT1] [varchar](6) NOT NULL,
[NT_CAT2] [varchar](6) NOT NULL,
)
テーブル内のデータは次のようになります。
NT_PRIMARY -- NT_CODE --- NT_CAT1 --- NT_CAT2
---------------------------------------------
1 AB100 123 234
2 AB200 124 234
3 AB300 125 235
4 AB400 126 235
テーブルには数年のデータがあり、8 つNT_CAT
のフィールドがあります。これらは varchar として格納された数値です。
クエリを制限するカテゴリの大きなリストがありますが、これをテキストの範囲に制限する方法が見つかりません。これまでのところ、私は試しました:
{NL_Trans.NT_CAT1} IN "124" to "125"
AND
(CDbl ({NL_Trans.NT_CAT1}) IN 124 to 125))
どちらも結果を返しません。
場合によっては範囲が 100 項目を超えるため、OR ステートメントの大きなリストを使用することはできません。つまり、何千行も必要になります。
誰かが機能する代替手段を提供できますか(可能であればCatagoriesインデックスを活用します)、または上記のステートメントのいずれかが機能しない理由を教えてください。