私は2つのテーブル(tableAとtableB)に両方とも名前カラムを持っています。 tableAのnameカラムはNAMEと呼ばれ、tableBのカラムはFULLNAMEと呼ばれるかもしれませんが、どちらも同じ値を持つはずです。WHERE句でのカラム変数の使用
私は、これら2つの列の値が同じでないメンバID(いずれかのテーブルから)を取得するクエリを記述します。しかし、私はSSRSレポートに入ってくるので、私はパラメータを介してチェックしている列名を渡したいと思います。将来、私はこれらの2つのテーブルの間の他の列を比較するために使用できるようにしたいと思います。
このような何か:
DECLARE @COLUMN_A VARCHAR(50), @COLUMN_B VARCHAR(50)
/* COLUMN PARAMS WILL BE PASSED IN VIA SSRS */
SELECT
DISTINCT(MEMBER_ID)
FROM
TABLE_A
JOIN TABLE_B
ON (TABLE_A.MEMBER_ID = TABLE_B.MEMBER_ID)
WHERE
@COLUMN_A <> @COLUMN_B
は、この可能性のようなものですか?
編集:
この作品のようなものがありますか?
DECLARE @column VARCHAR(50)
SELECT @column = 'FIRST_NAME';
SELECT DISTINCT
MEMBR_ID,
case
when @column='FIRST_NAME' then MEMBR_FIRST_NAME
when @column='LAST_NAME' then MEMBR_LAST_NAME
end TABLE_1,
case
when @column='FIRST_NAME' then FIRSTNAME
when @column='LAST_NAME' then LASTNAME
end TABLE_2,
@column
FROM
TABLE_1
JOIN TABLE_2
ON (TABLE_1.MEMBR_ID = TABLE_2.MEMBR_ID)
WHERE
[email protected] <> [email protected]
の動的SQLを使用すると、@COLUMN_AをREPLACEしようとしている – Prisoner