WHERE 句のステートメントを呼び出し可能な変数として格納する方法はありますか?
異なる「日付」と「ID」の値を使用して、以下のクエリを約 20 回実行する必要がありますが、「コード」の値は同じままです。ただし、20 回のクエリの後、「コード」の値を別の値のセットに変更し、同じ 20 個の「日付」と「ID」の組み合わせを使用する必要があります。
SQL Server Management Studio 2012 を使用しています。
編集:これは実際には、結果として得られるレコードの数をカウントするためのサブクエリです。各カウント クエリは追加のカウント クエリに結合されるため、すべてのクエリを一度に実行し、結果にカウントを含む 1 つの列を表示できます。各列が「コード」セットに固有の結果を含む Excel テーブルを作成する方法を知りたいのですが、まだ調べていません。
SELECT DISTINCT a,b,c
FROM mytable
WHERE (Code BETWEEN '201' AND '205') OR (Code BETWEEN '211' AND '215') OR (Code BETWEEN '241' AND '245') OR (Code = '450')
OR (Code BETWEEN '381' AND '387') OR (Code BETWEEN '391' AND '397') OR (Code BETWEEN '401' AND '420') OR (Code BETWEEN '441' AND '444')
OR (Code BETWEEN '358' AND '360') OR (Code BETWEEN '371' AND '937') OR (Code = '499') OR (Code BETWEEN '218' AND '239'))
AND (Date > '20101231' AND Date < '20120101')
AND (ID IN ('3','6','7'))
コードの値がどのように変化するか:
WHERE (Code IN ('791','792'))
OR (Code BETWEEN '801' AND '899')
OR (Code BETWEEN '101' AND '125')
OR (Code BETWEEN '401' AND '429')
WHERE (Code BETWEEN '281' AND '749') OR Code = '2037'
他に 2 つの Code リストがあり、合計 5 つあり、BETWEEN、IN、および = ステートメントを含みます。役立つ場合はこれらも投稿できますが、上記と同じ宣言方法に従っています。
日付の値は、暦年または四半期のいずれかです。ID 値は、IN、NOT IN、または = のいずれかで指定されます。それらはすべて char、varchar、tinyint、または date です。
別の方法:コードを何度もコピー アンド ペーストして置き換えることもできますが、コーディング能力を向上させたいと考えています。また、検索と置換は単一行のみを読み取ります。WHERE 句など、複数の行に対して機能させることができません。正規表現について聞いたことがありますが、それらを使用して目的を実行する方法がわかりません。
助けてくれてありがとう!